我需要按其在线日期显示我们所有能源项目的累积功率。
因此,如果一个项目于2016年上线,则该项目也将在2017年和2018年上线,应计入这些总数中。我基本上需要一个可以回答问题的表格
"What was our energy capacity as of 12/31/2016, 12/31/2017,etc"
我可以通过在不同的日期上反复运行一个简单的查询来做到这一点,但理想情况下,我将只运行一个查询并获取所需的表。
我实际上并不知道如何用SQL编写代码,所以我只使用Access查询设计器,这可能会使事情变得更加困难。
得到我想要的简单查询:
SELECT Sum(Projects.[System Size AC]) AS [SumOfSystem Size AC]
FROM Projects
WHERE (((Projects.[Online Date])<#1/1/2018#));
查询出错:
SELECT DSum([Projects]![System Size AC],[Projects],Year([Online Date])<=[Yr]) AS [Run Sum], Year([Online Date]) AS Yr
FROM Projects
GROUP BY Year([Online Date]);
我可以通过在不同的日期上反复运行简单的查询来做到这一点,但理想情况下,我会在在线日期列中获得一张表,其中包含所有年份,以及该年中所有可用项目容量的累积总计< / p>
答案 0 :(得分:1)
您可以使用相关子查询来做到这一点:
SELECT Year(p.[Online Date]) as yr,
SUM(p.[System Size AC]) as this_year,
(SELECT SUM(p2.[System Size AC])
FROM Projects as p2
WHERE YEAR(p2.[Online Date]) <= YEAR(p.[Online Date])
) as running_sum
FROM Projects as p
GROUP BY Year([Online Date]);