表DateRangeTab(Fromdate,Todate,TotalValue)包含以下数据:
2010-01-01, 2011-01-01, 0
2010-01-01, 2012-01-01, 0
等(即TotalValue列中的大量日期范围均为0)
我还有表ValueTab(DateofValue,Value),其数据如下:
2010-01-02, £25
2011-01-01, £45
2011-05-04, £65
等(即许多不同的行,包含日期和每个日期的值)
我需要使用ValueTab表中的Sum of Value更新DateRangeTab TotalValue列,其中DateofValue属于FromDate - Todate范围。
我尝试过以下内容:
Update DateRangeTab
set TotalValue = a.Value
from (select sum(value) as Value
from ValueTab VT
join DateRangeTab DT
on VT.DateofValue between DT.startdate and DT.ToDate) a
但它在DateRangeTab的每一行中放置相同的总数。 希望有人可以帮助或指导我到另一个相关答案的帖子。
由于
答案 0 :(得分:0)
尝试
Update daterangetab
set totalvalue=(select sum(value)
from valuetab
where dateofvalue >= fromdate and dateofvalue <= todate
group by dateofvalue);
这适用于postgresql
答案 1 :(得分:0)
尝试这样的事情:
update DateRangeTab a
set TotalValue = (select sum(value)
from ValueTab
where DateofValue between a.Fromdate and a.Todate
group by DateofValue)
我无法对此进行测试,因此它非常接近......尝试并根据您的需要进行调整。