Bases de Datos > SQL Server
Sumar Campos con Condiciones
DasGrun:
Necesito el DOCTYPE para una condicion, pero aun si se lo quito al GROUP BY me informa el error que tengo que ingresarlo.
Gracias
Shiquilla:
mmm, lo único que se me ocurre es que hagas esto:
He cambiado la agrupación para que: si DOCTYPE está entre de 5 ó 6 ponga un 1 y si es distinto ponga un 0, así sólo te devolverá dos filas por cada cliente, luego, sumarlo todo.
--- Código: SQL ---SELECT A.VENDORID, A.VENDNAME, SUM(A.FIELD_1) AS FIELD_1, SUM(A.FIELD_2) AS FIELD_2FROM (SELECT dbo.PM.VENDORID, dbo.PM00.VENDNAME, SALDO = SUM(CASE WHEN dbo.PM.DOCTYPE BETWEEN 5 AND 6 THEN 0 ELSE PM.CURTRXAM END) AS FIELD_1, SALDO1 = SUM(CASE WHEN dbo.PM.DOCTYPE BETWEEN 5 AND 6 THEN dbo.PM.CURTRXAM * -1 ELSE 0 END) AS FIELD_2FROM dbo.PM INNER JOIN dbo.PM00 ON (dbo.PM.VENDORID = dbo.PM00.VENDORID)GROUP BY dbo.PM.VENDORID, dbo.PM00.VENDNAME, CASE WHEN dbo.PM.DOCTYPE BETWEEN 5 AND 6 THEN 1 ELSE 0 END) AGROUP BY A.VENDORID, A.VENDNAME
Saludos,
Navegación
[*] Página Anterior
Ir a la versión completa