table 中的 SUM 值,并将其减去具有相同 ID 的另一个 table 中的值的 SUM

SUM values from a table and subtract it to a SUM of values from another table having the same IDs

我有两个表,inventory_tbl和withdrawal_tbl,都有product_id,数量和金额。我想将 inventory_tbl 的所有数量相加,并将其减去 withdrawal_tbl 中两个表具有相同 product_id 的所有数量的总和。意义;

inventory_tbl

product_id | quantity  | amount
1          | 10        | 10000
2          | 20        | 20000
3          | 30        | 30000

withdrawal_tbl

product_id | quantity  | amount
1          | 5         | 5000
2          | 10        | 10000
3          | 20        | 20000

Remaining_tbl

product_id | quantity  | amount
1          | 5         | 5000
2          | 10        | 10000
3          | 10        | 10000

到目前为止,我有这个 SQL 声明,但它给了我错误的信息

"SELECT inventory_tbl.product_id As 'Product ID', SUM(inventory_tbl.quantity) - SUM(withdrawal_tbl.quantity), SUM(inventory_tbl.total) - SUM(withdrawal_tbl.total) 
FROM withdrawal_tbl, inventory_tbl GROUP BY inventory_tbl.product_id"

谢谢!

对所需的输出使用内部联接,试试这个:

"SELECT inventory_tbl.product_id As 'Product ID', SUM(inventory_tbl.quantity) - SUM(withdrawal_tbl.quantity), SUM(inventory_tbl.total) - SUM(withdrawal_tbl.total) 
FROM inventory_tbl INNER JOIN withdrawal_tbl on inventory_tbl.product_id =withdrawal_tbl.product_id group by inventory_tbl.product_id;"

问题是您正在执行叉积而不是内部联接。

将您的查询更改为类似这样的内容

"SELECT inventory_tbl.product_id As 'Product ID', SUM(inventory_tbl.quantity) - SUM(withdrawal_tbl.quantity), SUM(inventory_tbl.total) - SUM(withdrawal_tbl.total) 
FROM withdrawal_tbl inner join inventory_tbl on inventory_tbl.product_id = withdrawal_tbl.product_id  GROUP BY inventory_tbl.product_id"