SSRS SQL 我需要显示参数中使用的日期和上个月的数据
SSRS SQL I need to display data for dates used in the parameter and the previous month
我有一个 SSRS 报告,其中包含“开始时创建”和“结束时创建”的参数。用户 运行 手动选择显示记录的日期范围。我需要在两个不同的列中显示用户在参数中输入的月份的记录和参数中使用的日期的上个月的记录。
例如用户在参数中使用以下日期:
开始日期:03/01/2016 结束日期:03/31/2016
报告应在一栏中显示 2016 年 3 月 的记录,旁边显示 2016 年 2 月[=11= 的记录]
您可以编写一个查询两个月的查询。
添加一个将用作列标签的字段,例如将日期格式设置为每月的第一天。
然后创建一个数据透视表 table 以将两个月显示为具有常用行的列。
编辑 - 新细节
所以:
dateStart = '2016-03-01'
dateEnd = '2016-03-31'
这些可能少于整个月,但应该在同一个月内。 prevStart = DATEADD(month, DATEDIFF(month, '2000-01-01', dateStart)-1, '2000-01-01')
上个月的第一天。
对 prevEnd 使用类似的方法来计算上个月的最后一天。
好的。现在构建您的 select:
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)
构建一个枢轴 table 样式的网格,将 monthCol 作为列的标题,将您常用的数据作为行。这样您就可以获得 "previous Month" 列以及您 selected
的日期范围
我有一个 SSRS 报告,其中包含“开始时创建”和“结束时创建”的参数。用户 运行 手动选择显示记录的日期范围。我需要在两个不同的列中显示用户在参数中输入的月份的记录和参数中使用的日期的上个月的记录。
例如用户在参数中使用以下日期:
开始日期:03/01/2016 结束日期:03/31/2016
报告应在一栏中显示 2016 年 3 月 的记录,旁边显示 2016 年 2 月[=11= 的记录]
您可以编写一个查询两个月的查询。
添加一个将用作列标签的字段,例如将日期格式设置为每月的第一天。
然后创建一个数据透视表 table 以将两个月显示为具有常用行的列。
编辑 - 新细节
所以:
dateStart = '2016-03-01'
dateEnd = '2016-03-31'
这些可能少于整个月,但应该在同一个月内。 prevStart = DATEADD(month, DATEDIFF(month, '2000-01-01', dateStart)-1, '2000-01-01')
上个月的第一天。
对 prevEnd 使用类似的方法来计算上个月的最后一天。
好的。现在构建您的 select:
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)
构建一个枢轴 table 样式的网格,将 monthCol 作为列的标题,将您常用的数据作为行。这样您就可以获得 "previous Month" 列以及您 selected
的日期范围