Mysql SQL从两个表中选择SUM并按分组
我有两张桌子(PO和GRN)。 我想得到: [这就是我正在做的:][1] 我得到这些结果(错误的订单数量、GRN数量和GRN余额) 我期待的是:Mysql SQL从两个表中选择SUM并按分组,mysql,Mysql,我有两张桌子(PO和GRN)。 我想得到: [这就是我正在做的:][1] 我得到这些结果(错误的订单数量、GRN数量和GRN余额) 我期待的是: | Item | PONO | po_qty | GRN_qty | GRN_balance | |------|------|--------|---------|-------------| | A | po1 | 70 | 65 | 5 | | B | po1 | 50 |
| 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 |
我修改了你的SQL。请执行并查看
SELECT PO.Item,PO.PONO,
PO.Qty as po_qty,
GRN.Qty as GRN_qty,
PO.Qty- GRN.Qty as GRN_balance
from PO,GRN
group by PO.Item
谢谢..这里有一个方法
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
这是一个错误的答案,我想你应该先使用join,然后使用subtract,因为这个值来自不同的表。这不会给出与预期结果相同的结果,你缺少最后一列。平衡也是完全不同的。