我正在嘗試在 postgres 中撰寫一個 sql 腳本,以找到總價和還款金額的累積差異。我有兩個表,如下所示。我已經完成了此處提供的解決方案,但它沒有解決我的問題。
item table
item_id cost_price date_purchase
1 200 01-06-2019
2 300 10-07-2019
3 250 15-08-2019
4 400 10-09-2019
payment table
item id payment payment date
1 50 01-06-2019
1 40 20-06-2019
2 30 15-07-2019
1 60 17-07-2019
2 100 15-08-2019
3 90 17-08-2019
4 300 20-09-2019
1 50 25-09-2019
Expected result
Month Remaining amount
06_2019 (200 - 90) = 110
07_2019 (200 300) - (90 30 60) = 320
08_2019 (200 300 250) - (90 90 100 90) = 380
09_2019 (200 300 250 400) - (90 90 190 300 50) = 430
uj5u.com熱心網友回復:
您可以通過使用 ORDER BY 月份的 WINDOWING 函式通過 SUM 來實作。但是給我們你的表的DDL來幫助更多......
uj5u.com熱心網友回復:
由于您的示例忽略了item_id結果中的
with ledger as (
select to_char(date_purchase, 'YYYY-MM') as xact_month, cost_price as amount from item
union all
select to_char(payment_date, 'YYYY-MM'), payment * -1 from payment
)
select distinct xact_month as month,
sum(amount) over (order by xact_month) as remaining_amount
from ledger;
作業小提琴。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/380937.html
標籤:sql PostgreSQL的
上一篇:groupby與另一個行聚合函式
