Ayuda con Consulta SQL

16/09/2003 - 12:31 por Par-Salian | Informe spam
Un Saludo,

tengo la siguiente consulta:

SELECT sFamilia, sLibre300, SUM(dCantidad1)as CantCompra, SUM(0) as
Cantventa, SUM(dImporte)as ImpCompra, SUM(0)as ImpVenta
FROM Historico
WHERE dtFecha >= '09/01/2003'
AND dtFecha <='09/30/2003'
AND sMovim = 'E'
GROUP BY sFamilia, sLibre300
union
SELECT sFamilia, sLibre300, SUM(0) as CantCompra, SUM(dCantidad1)as
CantVenta, SUM(0)as ImpCompra, SUM(dImporte)as ImpVenta
FROM Historico
WHERE dtFecha >= '09/01/2003'
AND dtFecha <='09/30/2003'
AND sMovim = 'S'
GROUP BY sFamilia, sLibre300

que me devuelve lo siguiente:
sFamilia sLibre300 CantCompra Cantventa ImpCompra
ImpVenta

AN ANGULAR 0.0 20058.0
0.0 7633.86
AN ANGULAR 19301.0 0.0 6573.0
0.0
CHB CHAPA BLANCA 0.0 2802.0 0.0
394.9
CHB CHAPA BLANCA 4363.0 0.0 1852.8
0.0

como veis, por cada familia me salen 2 registros,
¿seria posible ponerlo todo en uno?

Gracias de antemano
 

Leer las respuestas

#1 Fran
16/09/2003 - 14:02 | Informe spam
Ya lo he solucionado, he cambiado la consulta por esta:

select sfamilia, sLibre300, SUM(case sMovim WHEN 'E' THEN dCantidad1 ELSE
0 END) as CantCompra,
SUM(case sMovim WHEN 'E' THEN dImporte ElSE 0 END) as ImpCompra,
SUM(case sMovim WHEN 'S' THEN dCantidad1 ELSE 0 END) as CantVenta,
SUM(case sMovim WHEN 'S' THEN dImporte ELSE 0 END) as ImpVenta,
SUM(case sMovim WHEN 'S' THEN dImporte ELSE 0 END - case sMovim
WHEN 'E' THEN dImporte ElSE 0 END )as Benef
FROM Historico
WHERE dtFecha >= '09/01/2003'
AND dtFecha <= '09/30/2003'
AND sEtiquetas IN ('S','N')
GROUP BY sFamilia, sLibre300

Gracias de todos modos, un saludo

Preguntas similares