none
SUMAR REGISTROS CON ID IGUALES RRS feed

  • Pregunta

  • Buenas Tardes,

    Requiero hacer una consulta la cual me sume los valores únicamente de aquellos registros que tengan el mismo ID, como lo muestra el siguiente ejemplo:

    ID

    PRODUCTO

    PRECIO

    1

    FH4001

    45

    2

    FH4002

    50

    2

    FH4002

    50

    2

    FH4002

    50

    El resultado que me gustaría obtener sería el siguiente:

    ID

    PRODUCTO

    PRECIO

    RESULTADO

    1

    FH4001

    45

    45

    2

    FH4002

    50

    150

    2

    FH4002

    50

    150

    2

    FH4002

    50

    150

    Para el primer registro el resultado es "45" debido a que solo existe un registro con el id "1".

    Para los siguientes 3 registros el resultado es "150" lo cual se obtiene de la suma de los 3 valores de los registros que tienen el ID "2".

    De antemano agradezco el apoyo y me encuentro al pendiente para cualquier aclaración.

    Saludos.

    miércoles, 3 de febrero de 2016 17:49

Respuestas

  • Buenas tardes,

    La versión de SQL que utilizo es la 2012.

    En cuanto a la consulta que me indicaste es exactamente lo que necesitaba, mil gracias por tu apoyo.

    Saludos.

    miércoles, 3 de febrero de 2016 20:36

Todas las respuestas

  • Saludos, tal como lo explicas bastaría con hacer una agrupación mediante GROUP BY y luego sumarizar los resultados. Trata: SELECT ID, Producto, SUM(Precio) AS Resultado FROM TuTabla GROUP BY ID, Producto

    Ayacucho - Perú
    Recuerda si mi solución atiende tu consulta por favor márcala como útil y como respuesta.

    http://litigiouslobo.blogspot.com/
    El Blog de Steve Morrison

    miércoles, 3 de febrero de 2016 18:25
  • Cual version de SQL Server usas?

    -- 2005 o mayor, usa una funcion de agregacion de ventana con partitcionamiento al nivel de ID
    select ..., sum(precio) over(partition by ID) as resultado
    from ...

    -- cualquier version
    select A.*, B.resultado
    from
        tuTabla as A
        inner join
        (select T.ID, sum(T.precio) as resultado from tuTabla as T group by T.ID) as B
        on A.ID = B.ID;


    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas

    miércoles, 3 de febrero de 2016 18:25
  • Estimado Steve, la consulta que me comentas no da solución al problema. La solución es la siguiente:

    Cual version de SQL Server usas?

    -- 2005 o mayor, usa una funcion de agregacion de ventana con partitcionamiento al nivel de ID
    select ..., sum(precio) over(partition by ID) as resultado
    from ...

    -- cualquier version
    select A.*, B.resultado
    from 
        tuTabla as A 
        inner join 
        (select T.ID, sum(T.precio) as resultado from tuTabla as T group by T.ID) as B 
        on A.ID = B.ID;

    De cualquier forma agradezco tu apoyo.

    Saludos.

    miércoles, 3 de febrero de 2016 20:34
  • Buenas tardes,

    La versión de SQL que utilizo es la 2012.

    En cuanto a la consulta que me indicaste es exactamente lo que necesitaba, mil gracias por tu apoyo.

    Saludos.

    miércoles, 3 de febrero de 2016 20:36