【发布时间】:2021-03-17 05:39:14
【问题描述】:
我正在尝试使用 3 个表的 SUM 和算术运算符进行 LEFT JOIN,但我被卡住了,
在下面底部的预期结果中,有一个名为initial_stock 的新字段,它是以下结果:
initial_stock = current_stock + sum(used) - sum(restock_amount)
你可以在这里试试:https://dbfiddle.uk/?rdbms=postgres_12&fiddle=2216e64ee6fa90556d8f952f115dd070
这是表格:
product表:
id product_name current_stock
------ ------------ -------------
1 abc 10
2 aaa 0
3 bbb 10
4 ddd 20
usage表:
id product_id used date_out
------ ------------ ------- ----------
1 1 10 2020-11-20
2 1 20 2020-11-20
3 2 20 2020-11-11
product_restock表:
id product_id restock_amount date_in
------ ------------ -------------- -----------
1 1 10 2020-11-15
2 1 20 2020-11-14
3 4 10 2020-11-09
预期结果从日期2020-11-01 到2020-11-30:
id product_name initial_stock restock used current_stock
------ ------------ ------------- ------- ---- -------------
1 abc 10 30 30 10
2 aaa 20 0 20 0
3 bbb 10 0 0 10
4 ddd 10 10 0 20
【问题讨论】:
标签: sql postgresql sum left-join lateral-join