我有一个 SSRS 报告,其中包含"开始创建"和"结束创建"的参数。用户手动运行此操作并选择要显示其记录的日期范围。我需要在两个不同的列中显示用户在参数中输入的月份的记录和参数中使用的日期的上个月的记录。
例如,用户在参数中使用以下日期:
开始日期: 03/01/2016结束日期: 03/31/2016
报告应在一列中显示 2016 年 3 月的记录,旁边显示 2016 年 2 月的记录
您可以编写一个查询两个月。
添加一个将充当列标签的字段,例如将日期格式化为每月的第一天。
然后创建一个数据透视表,将两个月显示为具有通常行的列。
编辑 - 新细节所以: dateStart = '2016-03-01'
dateEnd = '2016-03-31'
这些可能少于整个月,但应该在同一个月内。 prevStart = DATEADD(month, DATEDIFF(month, '2000-01-01', dateStart)-1, '2000-01-01')
上个月的第一天。对 prevEnd 使用类似来计算上个月的最后一天。
还行。现在构建您的选择:
SELECT xxxx, yyyy, zzzz
, DATEADD(month, DATEDIFF(month, '2000-01-01', createdOnDate), '2000-01-01') as MonthCol
FROM tables
WHERE (createdOnDate>= prevStart and createdOnDate<=prevEnd)
OR (createdOnDate>= dateStart and createdOnDate<=dateEnd)
构建一个数据透视表样式网格,其中 monthCol 作为列的标题,您常用的数据作为行。这样,您就可以获取"上个月"列以及您选择的日期范围