【问题标题】:SSRS Grouped total sum issueSSRS 分组总和问题
【发布时间】:2017-09-24 18:19:25
【问题描述】:

我正在创建一个 SSRS 报告,显示未来 12 个月的预计销售额,按 ProductID 分组。虽然详细信息单元格显示正确,但每个月的组总和显示的是 12 个月的所有销售额,而不仅仅是相关月份。

例如,这里是单个产品的所有表值:

ProductID EstimatedDate ProjSales
123A      Oct 10/2017   100
123A      Nov 15/2017   100
123A      Dec 01/2017   100
123A      Dec 31/2017   100

但是,这是该产品的报告当前显示的内容:

Product EstimatedDate   Oct 2017   Nov 2017   Dec 2017
123A    Oct 10/2017     100        0          0
        Nov 15/2017     0          100        0
        Dec 01/2017     0          0          100
        Dec 31/2017     0          0          100
        Total           400        400        400

如上所示,详细单元格的计算非常完美,因为如果年/月匹配,详细信息部分中的每条记录都会显示预计销售额,否则显示 0。不幸的是,“总计”金额的最后一行不正确,因为每月单元格显示所有月份的预计销售额总额,而不仅仅是相关月份。

这是我 2017 年 12 月的报告表达方式:

细节单元格:

=IIF(Year(Fields!EstimatedDate.Value) = 2017 AND Month(Fields!EstimatedDate.Value) = 12, Fields!ProjSales.Value, 0)

分组单元格

=IIF(Year(Fields!EstimatedDate.Value) = 2017 AND Month(Fields!EstimatedDate.Value) = 12, SUM(Fields!ProjSales.Value), 0)

知道如何更改分组表达式以检索每个月的预计销售额吗?

编辑:格式代码

【问题讨论】:

    标签: reporting-services report ssrs-2012


    【解决方案1】:

    使用矩阵。 添加列组并按年和月分组。 然后只需将 ProjSales 放在明细行组中,将 SUM(ProjSales) 放在组总计中。无需使用表达式来计算值。 列组标题必须是表达式才能从 EstimateDate 列中提取月份和年份。如果您以更传统的格式 YYYYMMDD 等存储日期,那么它会更容易,因为我不确定任何 DATE 函数会识别您在上面显示的格式。

    如果您需要更详细的答案,请告诉我。我目前无能为力。

    【讨论】:

    • 谢谢,艾伦!我以前从未使用过列分组功能,但这似乎让我非常接近最终报告。只有一个问题:该报告目前仅显示 10 个月,因为接下来的两个月(2018 年 4 月、2018 年 6 月)没有预计销售额。即使没有基础数据,有没有办法强制它显示那些月份?
    • 执行此操作的最简单方法是将NULL 值添加到您的数据集中以获取缺失月份。在大多数情况下,最好有一个包含日期(或至少几个月)的表格。然后,您可以从此表中离开联接,这样每个月都会出现在数据集中,但您将拥有 NULL,您没有数据可加入。
    猜你喜欢
    • 1970-01-01
    • 2013-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多