Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-08-2005
chalys chalys is offline
Miembro
 
Registrado: jul 2005
Posts: 24
Poder: 0
chalys Va por buen camino
Question 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.

Responder Con Cita
  #2  
Antiguo 05-08-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
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!
Responder Con Cita
  #3  
Antiguo 05-08-2005
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 22
Crandel Va por buen camino
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]
Responder Con Cita
  #4  
Antiguo 05-08-2005
lgarcia lgarcia is offline
Miembro
 
Registrado: jul 2004
Posts: 479
Poder: 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
  #5  
Antiguo 08-08-2005
chalys chalys is offline
Miembro
 
Registrado: jul 2005
Posts: 24
Poder: 0
chalys Va por buen camino
Smile muchas gracias....

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



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 19:05:26.


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
Copyright 1996-2007 Club Delphi