我无法获取正确结果的 friend 请建议,在此先感谢。 我有两个表并试图获得平衡数量
一个是采购表(purchase_detail)
Pur_Date Item_Id Pur_Qty
2014-10-08 12792 25
2014-11-01 133263 20
2014-10-01 133263 2
2014-11-20 12792 10
其次是销售表(sale_detail)
Sale_Date Item_Id Sale_Qty
2014-11-17 133263 -6
2014-11-05 12792 -1
2014-11-24 133263 -2
2014-10-28 12792 -6
2014-11-05 133263 -2
使用左连接后 SQL :
select a.pur_item, sum(a.pur_qty + b.sold_qty ) as bal_qty
from purchase_item_qty_amount a left join sale_item_qty_amount b
on a.pur_item =b.sale_item where a.pur_item IN( 12792,133263)
group by 1;
结果 - 但它不正确
Item_Id Bal_qty
12792 56
133263 46
结果 - 应该是
Item_Id Bal_qty
12792 28
133263 12
最佳答案
试试这个未经测试的查询:
select pur_item, sum(as bal_qty) from (
select pur_item, sum(a.pur_qty) as bal_qty
from purchase_item_qty_amount a
group by 1
union
select pur_item, sum(b.sold_qty)as bal_qty
from sale_item_qty_amount b
group by 1)
group by 1
关于sql左连接给出重复的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27479522/