包含存储过程数据集和按月聚合的 SSRS 报告 - 如何处理 "empty" 个月?
SSRS report with stored procedure Dataset and aggregation by month - how to handle "empty" months?
我有一个 SSRS 报告,它调用存储过程 return 两列数据集 - 一列是 Date
,另一列是我创建的计算列,用于显示月份格式 MMM-YYYY
.
使用这个数据集,我创建了一个聚合条形图报告,它显示每个月值的每月记录数,该值在数据集中至少有一个记录,但是我希望能够包含在图表中数据集范围内的任何月份,即使它们不包含任何记录。
例如,目前我在图表上看到以下数据点:
Month Count
----- -----
Oct-2015 2
Nov-2015 5
Jan-2016 3
Feb-2016 6
2015 年 12 月丢失,因为我的数据集没有 return 任何记录,所以我希望能够在本月的图表上绘制零计数值。
现在我知道在 SQL 中我通常会怎么做,使用某种日历 table LEFT JOINed 以便我可以 return 零计数的月份,但是我可以在 SSRS 中使用存储过程作为主数据集的目标来实现相同的目标吗?
如果您的分组是在 date/time(或数字)上,您可以为其设置轴类型 标量。
- 创建您的图表,将计数作为值,月份作为类别组
- 右键单击分组轴(在我下面的示例中为水平轴)并转到轴属性
- 将轴类型更改为标量,并将区间类型更改为个月
- 仍然在轴属性中,将数字类别更改为
Date
,将类型更改为 Jan 2000
(或使用自定义格式)
我的第一直觉是按实际日期汇总,转换为月份的第一天,而不是 MMM-yyyy
字符串。但是,似乎 SSRS(在我的例子中是 2008 R2)将 MMM-yyyy
格式的文本识别为有效日期,因此您现有的程序不需要更改。
我有一个 SSRS 报告,它调用存储过程 return 两列数据集 - 一列是 Date
,另一列是我创建的计算列,用于显示月份格式 MMM-YYYY
.
使用这个数据集,我创建了一个聚合条形图报告,它显示每个月值的每月记录数,该值在数据集中至少有一个记录,但是我希望能够包含在图表中数据集范围内的任何月份,即使它们不包含任何记录。
例如,目前我在图表上看到以下数据点:
Month Count
----- -----
Oct-2015 2
Nov-2015 5
Jan-2016 3
Feb-2016 6
2015 年 12 月丢失,因为我的数据集没有 return 任何记录,所以我希望能够在本月的图表上绘制零计数值。
现在我知道在 SQL 中我通常会怎么做,使用某种日历 table LEFT JOINed 以便我可以 return 零计数的月份,但是我可以在 SSRS 中使用存储过程作为主数据集的目标来实现相同的目标吗?
如果您的分组是在 date/time(或数字)上,您可以为其设置轴类型 标量。
- 创建您的图表,将计数作为值,月份作为类别组
- 右键单击分组轴(在我下面的示例中为水平轴)并转到轴属性
- 将轴类型更改为标量,并将区间类型更改为个月
- 仍然在轴属性中,将数字类别更改为
Date
,将类型更改为Jan 2000
(或使用自定义格式)
我的第一直觉是按实际日期汇总,转换为月份的第一天,而不是 MMM-yyyy
字符串。但是,似乎 SSRS(在我的例子中是 2008 R2)将 MMM-yyyy
格式的文本识别为有效日期,因此您现有的程序不需要更改。