【发布时间】:2020-02-04 07:22:04
【问题描述】:
我有一个 SOME_DELTA 表,它记录了所有与当事人相关的交易以及金额变化 例如:
PARTY_ID | SOME_DATE | AMOUNT
--------------------------------
party_id_1 | 2019-01-01 | 100
party_id_1 | 2019-01-15 | 30
party_id_1 | 2019-01-15 | -60
party_id_1 | 2019-01-21 | 80
party_id_2 | 2019-01-02 | 50
party_id_2 | 2019-02-01 | 100
我有一个 MVC 控制器接受 map someMap(party_id, some_date) 的情况,我需要获取 part_id 列表,其中包含直到特定 some_date 的总和
在这种情况下,如果我将 mapOf("party_id_1" 发送到 Date(2019 - 1 - 15),将 "party_id_2" 发送到 Date(2019 - 1 - 2)) 我应该得到一个party_id 的列表,其中包含到 some_date 的总金额
输出应如下所示:
party_id_1 | 70
party_id_2 | 50
目前的代码是:
select sum(amount) from SOME_DELTA where party_id=:partyId and some_date <= :someDate
但在这种情况下,我需要遍历 map 并执行多个 DB 调用,以获取eatch party_id 的总和,直到 some_date 感觉不对
有没有更精细的方法来获取一个选择查询? (避免 +100 DB 调用)
【问题讨论】:
标签: sql postgresql multiple-value