Mysql 不同表的求和和和分组
我有三张桌子Mysql 不同表的求和和和分组,mysql,Mysql,我有三张桌子 Table (Store) +-----+-----+ | ID | Qty | +-----+-----+ | 001 | 4 | | 002 | 3 | | 003 | 5 | | 004 | 6 | +-----+-----+ Table (Received) +-----+-----+ | ID | Qty | +-----+-----+ | 001 | 2 | | 005 | 9 | | 001 | 5 | +-----+-----+
Table (Store)
+-----+-----+
| ID | Qty |
+-----+-----+
| 001 | 4 |
| 002 | 3 |
| 003 | 5 |
| 004 | 6 |
+-----+-----+
Table (Received)
+-----+-----+
| ID | Qty |
+-----+-----+
| 001 | 2 |
| 005 | 9 |
| 001 | 5 |
+-----+-----+
Table (Issued)
+-----+-----+
| ID | Qty |
+-----+-----+
| 001 | 3 |
| 003 | 2 |
| 001 | 1 |
| 005 | 2 |
+-----+-----+
我想将门店的数量+已收-已发数量相加,按ID分组
我希望结果如下所示。请帮忙
Table (Stock)
+-----+-----+
| ID | Qty |
+-----+-----+
| 001 | 7 |
| 002 | 3 |
| 003 | 3 |
| 004 | 6 |
| 005 | 7 |
+-----+-----+
你可以随心所欲
select
x.id , coalesce(sum(qty),0)-coalesce(i_qty,0) from
(
select id,qty from store
union all
select id,qty from received
)x
left join(
select id,sum(qty) as i_qty
from issued group by id
)y on x.id = y.id
group by id
您好,Chakraborty,如何在不使用union运算符的情况下获得相同的结果。使用union all没有问题,请告诉我您为什么不希望查询中使用union all?我使用的代码生成器不支持union和存储过程调用。很抱歉,仅使用join无法完成此类操作,因为即使使用左连接,如果左表中不存在某些ID,也会在结果中消除。所以union all确保所有ID都存在。我很惊讶代码生成器中不支持工会。它是某种框架吗?如果我的存储表包含所有的ID呢。我们可以使用join而不使用union all吗?