intrucion SQL imposible
bueno la cuestion es que estoy intentando de hacer una intruccion SQL para que me saque el stock de producto, en la cual intervienen 4 tablas, una es articulos, otra son movimientos, otra movimientos_compras, y otra son tickets, el nexo comun es cod_articulo. Necesito sumar las cantidades que hay en movimientos_compras.cantidad, lo que hay en movimientos.cantidad y en tickets.cantidad pero no funcion de ninguna de las formas que he probado lo ultimo es SELECT ARTICULOS.cod_articulo, Sum(MOV.CANTIDAD) AS SumaDeCANTIDAD, Sum(MOV_COMPRA.CANTIDAD) AS SumaDeCANTIDAD1, Sum(TICKETS.CANTIDAD) AS SumaDeCANTIDAD2, MOV.COD_ARTICULO, MOV_COMPRA.COD_ARTICULO, TICKETS.COD_ARTICULO
FROM TICKETS INNER JOIN (MOV_COMPRA INNER JOIN (MOV LEFT JOIN ARTICULOS ON MOV.COD_ARTICULO = ARTICULOS.cod_articulo) ON MOV_COMPRA.COD_ARTICULO = MOV.COD_ARTICULO) ON TICKETS.COD_ARTICULO = MOV_COMPRA.COD_ARTICULO
GROUP BY ARTICULOS.cod_articulo, MOV.COD_ARTICULO, MOV_COMPRA.COD_ARTICULO, TICKETS.COD_ARTICULO
pero la suma (de las cantidades de cada tabla) nunca es correcta
help:
FROM TICKETS INNER JOIN (MOV_COMPRA INNER JOIN (MOV LEFT JOIN ARTICULOS ON MOV.COD_ARTICULO = ARTICULOS.cod_articulo) ON MOV_COMPRA.COD_ARTICULO = MOV.COD_ARTICULO) ON TICKETS.COD_ARTICULO = MOV_COMPRA.COD_ARTICULO
GROUP BY ARTICULOS.cod_articulo, MOV.COD_ARTICULO, MOV_COMPRA.COD_ARTICULO, TICKETS.COD_ARTICULO
pero la suma (de las cantidades de cada tabla) nunca es correcta
help:
Hay varias soluciones, para mà la más sencilla serÃa:
SELECT cod_articulo, sum(cantidad) AS stock
FROM [SELECT * from t1 union select * from t2 UNION select * from t3 ]. AS todasjuntas
GROUP BY cod_articulo;
El usar JOINS te complicará el tema ya que las tablas que tratas de enlazar realmente no lo están.
Saludos
SELECT cod_articulo, sum(cantidad) AS stock
FROM [SELECT * from t1 union select * from t2 UNION select * from t3 ]. AS todasjuntas
GROUP BY cod_articulo;
El usar JOINS te complicará el tema ya que las tablas que tratas de enlazar realmente no lo están.
Saludos
perdona, en el mensaje anterior olvidé aclarar que t1, t2 y t3 son las tablas que contienen las cantidades, aunque eso ya lo sabrÃas, jeje.
aquà es donde podrÃas usar el left join, una vez que ya tienes todo "agrupado":
SELECT [todasjuntas.cod_articulo], [descripcion], sum(cantidad) AS stock
FROM [SELECT * from t1 union select * from t2 UNION select * from t3 ]. AS todasjuntas LEFT JOIN articulos ON [articulos].[cod_articulo]=todasjuntas.cod_articulo
GROUP BY [todasjuntas.cod_articulo], [descripcion];
Pero mejor analizar el tema con el ejemplo anterior, está más claro.
P.D.: FÃjate que tras el último corchete hay un punto.
aquà es donde podrÃas usar el left join, una vez que ya tienes todo "agrupado":
SELECT [todasjuntas.cod_articulo], [descripcion], sum(cantidad) AS stock
FROM [SELECT * from t1 union select * from t2 UNION select * from t3 ]. AS todasjuntas LEFT JOIN articulos ON [articulos].[cod_articulo]=todasjuntas.cod_articulo
GROUP BY [todasjuntas.cod_articulo], [descripcion];
Pero mejor analizar el tema con el ejemplo anterior, está más claro.
P.D.: FÃjate que tras el último corchete hay un punto.
