none
Calculo de un campo dividido por el maximo valor de otro campo RRS feed

  • Pregunta

  • Hola,

    Trabajo con SQL Server 2014.

    Necesito calcular el valor de un nuevo campo en mi tabla el cual se obtiene dividiendo por el maximo valor de otro campo.

    DECLARE @Datos AS TABLE
    (
       Orden Int
    
    
    )
    
    INSERT INTO @Datos
    VALUES(1),
    (2),
    (3),
    (4),
    (5),
    (6),
    (7),
    (8),
    (9),
    (10),
    (11);

    Necesito obtener un nuevo campo llamado Porcentaje el cual sera la división entre el campo orden y el valor maximo de dicho campo, en este caso, 11.

    Concretamente necesitaría obtener:

    Para ello he probado:

    Select Orden, (Select Max (Orden) from @Datos) as MaxOrden, Orden/(Select Max (Orden) from @Datos)*1.0 as Porcentaje from @Datos

    Pero no sé por qué no me devuelve ningún dato a nivel del nuevo campo "Porcentaje". Obtengo esto:

    ¿se os ocurre qué puede estar ocurriendo?

    Muchas gracias

    Angel


    • Editado Angeleci viernes, 27 de mayo de 2016 21:43
    viernes, 27 de mayo de 2016 21:43

Respuestas

  • Angeleci,

    Intenta con lo siguiente:

    SELECT 
    	Orden, 
    	MAX(Orden) OVER() AS MaxOrden, 
    	CONVERT(nvarchar(100), CONVERT(decimal(9,2), Orden/(MAX(Orden) OVER() * 1.0) * 100)) + ' %' AS Porcentaje 
    FROM 
    	@Datos

    • Marcado como respuesta Angeleci viernes, 27 de mayo de 2016 22:54
    viernes, 27 de mayo de 2016 21:52

Todas las respuestas