我想知道如何根据SSRS中设置的年份参数来计算某个计数基数的总计。选择certian年份时,前几年的所有计数将与当前计数相加。在我的存储过程中使用@year参数并且它在SSRS中工作之前,但这次我想尝试对其进行硬编码,然后在SSRS中只有一个年份参数。
以下是我目前正在处理的代码示例:
select
sum(MITotal.Count) as 'Yearly Count',
year(c_date) as 'year'
from
(select
count(*) as Count,
pol1.C_STATE,
month(pol1.c_Date) as Month,
year(pol1.c_ate) as Year,
left(datename(mm, C_Date), 3) + ' ' + cast(year(C_Date) as char(4)) as MonthYear
from contract pol1
where
pol1.C_STATE='wa'
group by pol1.C_STATE,month(pol1.c_Date),year(pol1.c_Date), left(datename(mm, C_Date), 3) + ' ' + cast(year(C_Date) as char(4))) MITotal
group by MITotal.Year
这将返回:
2 2009
5 2010
6 2011
我将如何添加到代码中,以便每当我选择说2010年作为参数年它将添加5 + 2或2011并且它将添加5 + 6 + 2作为总计。任何指针都会受到赞赏。
答案 0 :(得分:2)
基于年份参数的CASE语句求和如下:
SUM(CASE WHEN Year(c_Date) <= @Year THEN MITotal.Count END) AS 'Historical Total'