Home > Back-end >  Sum columns values in conditional aggregation
Sum columns values in conditional aggregation

Time:05-28

I would like to add APLICACIONES, ARANDANOS and PALTO in another SUBTOTAL column within the same select. Then display another column with one operation in TOTAL. (TOTAL * 3)

SELECT Comedor      = com.NombrePuntoEntrega 
      ,APLICACIONES = SUM(case when a.NombreArea = 'APLICACIONES' then s.CantidadRaciones else 0 end) 
      ,ARANDANOS    = SUM(case when a.NombreArea = 'ARÁNDANOS'    then s.CantidadRaciones else 0 end) 
      ,PALTO        = SUM(case when a.NombreArea = 'PALTO'        then s.CantidadRaciones else 0 end)
  FROM PPA_SolicitudRaciones c inner join  
       PPA_SolicitudRacionesDET S on c.IdSolicitud =s.IdSolicitud and s.IdLocalidad =c.IdLocalidad 
 INNER JOIN PPA_AREAS A ON A.IDLOCALIDAD=S.IDLOCALIDAD  and a.IdArea =s.IdArea 
 INNER JOIN PPA_PuntosEntrega com on com.IdLocalidad =s.IdLocalidad and com.IdPuntoEntrega =s.IdPuntoEntrega 
 WHERE (s.IdLocalidad =@IdLocalidad or @IdLocalidad =0)
    AND (s.IdArea =@IdArea or @IdArea =0)
    AND (c.FechaPedido between @FechaDel and @FechaAl   or   @FechaDel ='1900.01.01' )
    AND (c.IdTipoComida  =@TipoComida or @TipoComida=0)
 GROUP BY com.NombrePuntoEntrega
Comedor APLICACIONES ARANDANOS PALTO SUBTOTAL TOTAL
1.1 200 1000 20 1220 3660
1.2 300 0 30 330 990

CodePudding user response:

...
,SubTotal = SUM(case when a.NombreArea in ('APLICACIONES','ARÁNDANOS','PALTO')  then s.CantidadRaciones else 0 end)
,Total    = SUM(case when a.NombreArea in ('APLICACIONES','ARÁNDANOS','PALTO')  then s.CantidadRaciones*3 else 0 end)
...
  • Related