FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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. |
#2
|
||||
|
||||
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
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
#3
|
||||
|
||||
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.
__________________
[Crandel] |
#4
|
|||
|
|||
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 |
#5
|
|||
|
|||
muchas gracias....
hola amigos del foro muchas gracias por su ayuda, voy a tomar muy encuenta todos lo consejos que me dan gracias.....
|
|
|
|