Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/09/2009, 23:46
erick185
 
Fecha de Ingreso: septiembre-2007
Mensajes: 3
Antigüedad: 16 años, 7 meses
Puntos: 0
error con sumar datos sql en consulta

buen dia

resulta que estoy sumando registros de articulos, pero cuano lo hago no me muestra la cantidad exacta... es como un stock..... primero sumo todos los pedidos despues sumo las todas las ventas y despues resto la suma de ambas (stock), uso 3 tablas y a la hora de hacer una vista en sql los datos no son correctos, pues los compruebo..... ejemplo :

Las tablas son pequeñas, yo los hice asi para ver si funcionaban pero al parecer aun no logro hacer esta operacion
tengo un producto que se llama cuaderno, y asi tendria que quedar:

*** lo raro es que solamente con el producto "cuaderno" me hace mal la operacion, ya que el resto si me da el resultado correcto
--- asi me tendria que quedar:

producto-- ingreso --egreso --stock
cuadero ----- 18----- 8 ----- 10
Lapicero----- 45----- 12----- 33
Libro----- 25----- 3 ----- 22


pero sql solo me cuenta 5 en la columna de egreso, y yo ya rebice y me salen 8 .... esto me sucede cuando uso las 3 tablas (venta-pedido-producto)aqui esta el codigo que tengo

SELECT dbo.Producto.Id_Producto, dbo.Producto.Producto, SUM(DISTINCT dbo.Pedido.Cantidad) AS Entro, SUM(DISTINCT dbo.Venta.Cantidad) AS Egreso,
SUM(DISTINCT dbo.Pedido.Cantidad) - SUM(DISTINCT dbo.Venta.Cantidad) AS Stock
FROM dbo.Pedido INNER JOIN
dbo.Producto ON dbo.Pedido.Id_Producto = dbo.Producto.Id_Producto INNER JOIN
dbo.Venta ON dbo.Producto.Id_Producto = dbo.Venta.Id_Producto
GROUP BY dbo.Producto.Id_Producto, dbo.Producto.Producto

y este es le resultado, como podran ver esta mal:

id_producto--- Producto -- Entro -- Egreso -- Stock
1----- Cuaderno----- 18----- 5-----13
2----- Lapicero----- 45-----12-----33
3----- Libro----- 25----- 3 ----- 22

pero cuando realizo otra consulta aparte, solo que aqui uso solo la tabla de ventas y producto... y si me da el resultado correcto, vean

SELECT dbo.Producto.Id_Producto, dbo.Producto.Producto, SUM(dbo.Venta.Cantidad) AS Vendidos
FROM dbo.Producto INNER JOIN
dbo.Venta ON dbo.Producto.Id_Producto = dbo.Venta.Id_Producto
GROUP BY dbo.Producto.Id_Producto, dbo.Producto.Producto

el resultado:

Id_pro --- Producto -- Vendidos
1-----Cuaderno----- 8
2-----Lapicero----- 12
3-----Libro----- 3



ya rebice y aun no puedo encontrar el error, que sera?

de antemano gracias

Última edición por erick185; 24/09/2009 a las 23:51