Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Como trabajar con vistas (https://www.clubdelphi.com/foros/showthread.php?t=24020)

chalys 05-08-2005 04:08:16

Como trabajar con vistas
 
Tengo una Tabla denomina Tipo_Salida, esta tiene un campo Salida que siempre va tomar estos los siguientes valores:

Nota: espero que se entiendan mis tablas(hice lo que pude)

Tabla Tipo_Salida

CSalida ........ Salida
...... 01... ........ Seguro
...... 02... ........ Programa
...... 03... ........ Venta

La otra tabla la denomino Ventas y tiene una columna CodigoSalida que es una llave foranea que hace referencia a la tabla Tipo_Salida

Tabla Ventas

Fecha ... Producto ...CSalida...Precio
..***............P1............01..........***....
..***............P1............02..........***....
..***............P1............03..........***....
..***............P2............01..........***....
..***............P2............03..........***....
..***............P3............03..........***....



El problema es el siguiente, tengo que hacer un reporte mensual de manera que los datos se visualicen de la siguiente manera, sumando la cantidad de productos que salieron, para cada tipo de salida:

Producto....Seguro.....Programa......Venta.....Total
......P1............1................1.................1..............3
......P2............1................0.................1..............2
......P3............0................0.................1..............1

Estaba pensando en hacer una vista pero no se como volver los valores en columnas recurro a ustedes para que me puedan ayudar…… con algo de codigo SQL o si existe alguna sugerencia para realizar esto se los agradecería de antemano.


vtdeleon 05-08-2005 04:17:06

Saludos

No tengo las respuesto total a eso, pero te puedo recomenda a que estudies lo que esta en estos hilos: http://www.clubdelphi.com/foros/showthread.php?t=17253
http://www.clubdelphi.com/foros/arch...ncias+cruzadas

Crandel 05-08-2005 05:56:18

Es una vista media complicada, una solución facil sería armarlo vos en tu programa a base de consultas mas sencillas, donde cada una sea la suma parcial de lo que necesitas.

La cantidad de consultas es igual N_Productos * N_salidas.

lgarcia 05-08-2005 15:01:31

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

chalys 08-08-2005 04:00:04

muchas gracias....
 
hola amigos del foro muchas gracias por su ayuda, voy a tomar muy encuenta todos lo consejos que me dan gracias.....


La franja horaria es GMT +2. Ahora son las 21:39:14.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi