我在oracle sql中的左联接未返回左表的每个元素

问题描述

我正在尝试获取表B_ARTICULOS上的所有元素,并进行一些计算以连接其他表(其中B_ARTICULOS的某些元素不存在),我知道我必须使用左为此加入,但是我不知道我在做什么错。

使用此查询,我不会得到每个B_ARTICULOS,只有其他表格上列出的那些

SELECT a.id,a.nombre,CASE WHEN a.id IN dc.id_articulo THEN dc.cantidad ELSE 0 END CANTIDAD_COMPRAS,CASE WHEN a.id IN dc.id_articulo THEN dc.cantidad * a.costo ELSE 0 END MONTO_COMPRAS,CASE WHEN a.id IN dv.id_articulo THEN dv.cantidad ELSE 0 END CANTIDAD_VENTAS,CASE WHEN a.id IN dv.id_articulo THEN dv.cantidad * a.precio ELSE 0 END MONTO_VENTAS 
FROM B_ARTICULOS a
  LEFT JOIN B_DETALLE_COMPRAS dc ON a.id = dc.id_articulo
  JOIN B_COMPRAS c ON  dc.id_compra = c.id
  JOIN B_DETALLE_VENTAS dv ON dv.id_articulo = a.id
  JOIN B_VENTAS v ON v.id = dv.id_venta
WHERE a.id IS NOT NULL;

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)