我有两张桌子:
table1 =tbl_main:
item_id fastec_qty
001 102
002 200
003 300
004 400
table2= tbl_dOrder
order_id item_id amount
1001 001 30
1001 002 40
1002 001 50
1002 003 70
如何编写查询以使表的结果如下:
item_id amount difference
001 102 22
002 200 160
003 300 230
004 400 400
表1中的金额与表2中的总金额之间的差异。
答案 0 :(得分:2)
SELECT q.item_id, a.fastec_qty AS amount, a.fastec_qty - q.amount AS difference
FROM (
SELECT item_id, SUM(amount) AS amount
FROM tbl_dOrder
GROUP BY item_id
) q
JOIN tbl_main a ON a.item_id = q.item_id
此处此查询将首先对来自tbl2
的{{1}}的数量进行求和,然后使用第一个表将item_id
该查询的结果发送到JOIN
,以便它可以执行差异列的计算。