Delphi - Consulta

 
Vista:

Consulta

Publicado por Carmen Alicia (2 intervenciones) el 29/07/2008 19:54:48
Hola a todos, alguien me puede decir como por que no me esta haciendo el sum correctamente, solo me lo hace para el primer registro...

Select CP.CodProd CodP,P.Articulo,P.InvInicial,sum(P.V_Entrada*CP.Cantidad)as Tot,CP.Cantidad
From CompraProd CP,FacCompra FC,Producto P Where CP.NumFac=FC.NumFac and P.CodProd=CP.CodProd Group By CodProd,CP.Cantidad,P.Articulo,P.InvInicial Union
Select VP.CodProd CodP,P.Articulo,P.InvInicial,Sum(P.v_Salida*VP.Cantidad) Tot,VP.Cantidad
From VentaProd VP,FacVenta FV,Producto P Where VP.NumFac=FV.NumFac and P.CodProd=VP.CodProd Group By CodProd,VP.Cantidad,P.Articulo,P.InvInicial
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE:Consulta

Publicado por E.T. (1244 intervenciones) el 29/07/2008 20:28:05
Tu problema está en el FROM

Cuando pones las tablas así nada más obligas al manejador a buscar conicidencias en todas las relaciones que pones, usa en lugar de relaciones directas JOIN o LEFT JOIN

checa el mensaje "Consulta SQL Sirjhan Betancourt (29/07/2008)" que está más abajo, ahi puse una consulta así
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta

Publicado por pacopaz (104 intervenciones) el 29/07/2008 22:44:29
Para asegurar que se muestren todas las filas, deberías usar Union All. Además, atendiendo a lo que dice ET, si tu motor de base de datos lo permite, deberías usar los joins.
Así, tu query quedaría más o menos como esto:

Select
CP.CodProd CodP,
P.Articulo,
P.InvInicial,
sum(P.V_Entrada*CP.Cantidad)as Tot,
CP.Cantidad
From
CompraProd CP inner join FacCompra FC
on CP.NumFac=FC.NumFac inner join Producto P
on P.CodProd=CP.CodProd
Group By
CP.CodProd,
P.Articulo,
P.InvInicial,
CP.Cantidad

Union All

Select
VP.CodProd CodP,
P.Articulo,
P.InvInicial,
Sum(P.v_Salida*VP.Cantidad) Tot,
VP.Cantidad
From
VentaProd VP inner join FacVenta FV
on VP.NumFac=FV.NumFac inner join Producto P
on P.CodProd=VP.CodProd
Group By
CodProd,
VP.Cantidad,
P.Articulo,
P.InvInicial

Espero que te sirva.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar