Ver Mensaje Individual
  #4  
Antiguo 05-08-2005
lgarcia lgarcia is offline
Miembro
 
Registrado: jul 2004
Posts: 479
Reputación: 20
lgarcia Va por buen camino
Como trabajar con vistas

Hola:

Aunque no dices con que tipo de BD estas trabajando, casos similares al tuyo en SQL2000 se resuelve creando una tabla temporal con la estructura de salida que necesitas. Por ejemplo en un procedimiento almacenado

CREATE TABLE #temporal
(
producto char(50),
seguro int,
programa int,
venta int,
total int
)
INSERT INTO #temporal

SELECT producto, SUM(seguro), 0, 0, SUM(seguro)
FROM Ventas INNER JOIN
Tipo_salida ON Ventas.csalida = Tipo_salida.csalida
WHERE csalida = '01'
GROUP BY producto

UNION ALL

SELECT producto, 0, SUM(programa), 0, SUM(programa)
FROM Ventas INNER JOIN
Tipo_salida ON Ventas.csalida = Tipo_salida.csalida
WHERE csalida = '02'
GROUP BY producto

UNION ALL

SELECT producto, 0, 0, SUM(venta), SUM(venta)
FROM Ventas INNER JOIN
Tipo_salida ON Ventas.csalida = Tipo_salida.csalida
WHERE csalida = '03'
GROUP BY producto

SELECT producto, sum(seguro) seguro, sum(programa) programa, sum(venta) venta, sum(total)
FROM #temporal
GROUP BY producto

Con este tipo de consulta se puede lograr obtener casi cualquier resultado por dificil que parece.

Saludos
Luis Garcia

_____________________________
La mejor manera de decir es hacer
Responder Con Cita