
problema con inner join
Publicado por Eduardo (5 intervenciones) el 07/09/2021 19:45:25
Saludos colegas,
Tengo la siguiente query:
Y el resultado me da;
Vendidas
------------
3
O sea 3 unidades vendidas del producto con codigo 24, ahora, tengo otra tabla en donde están los stocks de los productos, si consulto esa tabla para el codigo 24 me da este resultado:
stock_local_id,stock_articulo_id,stock_unids
2 ,24, ,1
3 ,24 ,6
4 ,24 ,0
5 ,24 ,3
6 ,24 ,4
7 ,24 ,4
8 ,24 ,6
9 ,24 ,3
10 ,24 ,3
11 ,24 ,3
12 ,24 ,5
Si se suma la columna stock_unids da 38. Ahora cuando hago esta query haciendo join de ambas tablas:
La query me devuelve:
Vendidas Stock
------------ ---------
33 76
¿ De donde salen todas esas unidades ? - La columna stock me devuelve EL DOBLE de lo que realmente hay en registro mientras que la columna vendidas están multiplicadas x 11 (que es la cantidad de registros que hay en la tabla articulos_stock para el codigo 24). El resultado me debería dar:
Vendidas Stock
------------ ---------
3 38
Alguien que me tienda una mano con esto por favor. Saludos y gracias anticipadas.
Tengo la siguiente query:
1
2
3
4
select SUM(vd_unids) as vendidas
from ventas_cab
inner join ventas_det ON vc_id = vd_id
where vd_arti_id = 24
Y el resultado me da;
Vendidas
------------
3
O sea 3 unidades vendidas del producto con codigo 24, ahora, tengo otra tabla en donde están los stocks de los productos, si consulto esa tabla para el codigo 24 me da este resultado:
stock_local_id,stock_articulo_id,stock_unids
2 ,24, ,1
3 ,24 ,6
4 ,24 ,0
5 ,24 ,3
6 ,24 ,4
7 ,24 ,4
8 ,24 ,6
9 ,24 ,3
10 ,24 ,3
11 ,24 ,3
12 ,24 ,5
Si se suma la columna stock_unids da 38. Ahora cuando hago esta query haciendo join de ambas tablas:
1
2
3
4
5
select SUM(vd_unids) as vendidas,SUM(stock_unids) as stock
from ventas_cab
inner join ventas_det ON vc_id = vd_id
left join articulos_stocks ON stock_articulo_id = vd_arti_id
where vd_arti_id = 24
La query me devuelve:
Vendidas Stock
------------ ---------
33 76
¿ De donde salen todas esas unidades ? - La columna stock me devuelve EL DOBLE de lo que realmente hay en registro mientras que la columna vendidas están multiplicadas x 11 (que es la cantidad de registros que hay en la tabla articulos_stock para el codigo 24). El resultado me debería dar:
Vendidas Stock
------------ ---------
3 38
Alguien que me tienda una mano con esto por favor. Saludos y gracias anticipadas.
Valora esta pregunta


0