获取两个日期之间的值之和 SQL

问题描述 投票:0回答:1

我正在提取结果,有些人共享一个 ID。例如,ID# 3 有 4 行,唯一的区别是日期和金额。我想检查从我加入的另一个表中获得的两个日期,并获取两个日期之间的值的总和。

例如:

身份证 价值 日期
ID#1 60 2008年8月19日
ID#2 300 2001年4月10日
ID#3 100 1990年1月5日
ID#3 200 1990年1月6日
ID#3 150 1990年1月7日
ID#3 175 1990年1月8日

理想情况下,我想获得从 01/05/1990 到 ID#3 01/07/1990 的 ID#3 的总和。总和将为 450。最终结果应该是每个 ID# 的一行以及另一个表提供的日期范围内的值的一个总和。我认为 where 语句在这里不起作用,因为日期变化很大。有没有办法将其放在案例陈述中?还是子查询更好?

sql date sum subquery case
1个回答
0
投票

例如,这有什么问题?

select V.Id
    , sum(V.Value)
    , D.Begin
    , D.End
from ValueTable V
    inner join DateTable D on D.ValueId = V.Id
                          and D.Begin <= V.Date
                          and D.End >= V.Date
group by V.Id, D.Begin, D.End
© www.soinside.com 2019 - 2024. All rights reserved.