SQL SELECT SUM来自两个表和group by

时间:2015-06-19 07:34:49

标签: mysql

我有两张桌子(PO和GRN)。 我想得到: [这就是我在做的事情:] [1] http://sqlfiddle.com/#!9/db000/2

我得到了这些结果(错误的po_qty,GRN_qty和GRN_balance)。

我期待的是:

| Item | PONO | po_qty | GRN_qty | GRN_balance |
|------|------|--------|---------|-------------|
|    A |  po1 |     70 |      65 |           5 |
|    B |  po1 |     50 |       0 |          50 |
|    C |  po2 |     10 |       5 |           5 |
|    D |  po3 |     20 |       0 |          20 |
|    A |  po4 |     15 |      10 |           5 |

2 个答案:

答案 0 :(得分:1)

这是一种方法

select 
p.Item,
p.PONO,
sum(p.Qty) as po_qty,
coalesce(g.GRN_qty,0) ,
sum(p.Qty) - coalesce(g.GRN_qty,0) as GRN_balance
from PO p
left join (
  select PONO,Item,sum(Qty) as GRN_qty from GRN
  group by PONO,Item
)g
on g.PONO = p.PONO and g.Item = p.Item
group by p.Item,p.PONO
order by p.PONO

http://sqlfiddle.com/#!9/db000/30

答案 1 :(得分:-1)

我修改了你的SQL。请执行并查看

{{1}}

谢谢..