none
Duda para sumar campos RRS feed

  • Pregunta

  • Buenas, tengo una tabla de artículos y en esta tabla tengo 2 campos destinados a guardar el peso, en función del tipo de articulo lo guardo en uno u otro campo, ahora necesito hacer un SQL que me devuelva lo que pesan todos los artículos de una misma familia y no se bien como realizar esa consulta, para decirle que cuando el campo del peso2 sea mayor de 0 entonces tome como valor ese campo para la suma total de los kgs y cuando sea 0 o null que tome el valor del peso 1.

    Familia |  Articulo      | Peso1    | Peso 2

    Caja     | Caja Verde |  100      |     Null

    Caja     | Caja Azul   |  100      |     80

    Caja     | Caja Roja  |  100      |     60

    Entonces lo que debería de devolverme es :

    Familia |  Peso Total

    Caja     |   240

    Es decir la suma de 100 + 80 + 60.

    Gracias!!!

    lunes, 6 de julio de 2015 17:11

Respuestas

  • Hola mayoko,

    Un case soluciona lo que mencionas:

    declare @articulos table (Familia nvarchar(100), Articulo nvarchar(100), Peso1 decimal(9,2), Peso2 decimal(9,2));
    insert into @articulos values
    	('Caja', 'Caja verde', 100, Null),
    	('Caja', 'Caja azul', 100, 80),
    	('Caja', 'Caja roja', 100, 60);
    select
    	Familia,
    	sum(case when Peso2 > 0 then Peso2 else Peso1 end)
    from
    	@articulos
    group by
    	Familia

    Si la solución propuesta atendió su consulta no olvide marcarla como respuesta.

    Willams Morales
    Arequipa - PERÚ

    lunes, 6 de julio de 2015 17:29