Reporting services SSRS分组总金额问题

Reporting services SSRS分组总金额问题,reporting-services,report,ssrs-2012,Reporting Services,Report,Ssrs 2012,我正在创建一个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

我正在创建一个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)
知道如何更改分组表达式以检索每个月的预计销售额吗

编辑:格式化代码

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


如果你需要更详细的答案,请告诉我。我现在不能再做什么了。

谢谢你,艾伦!我以前从未使用过列分组功能,但这似乎使我非常接近最终报告。只有一个问题:报告目前只显示了10个月,因为接下来的两个月(2018年4月、2018年6月)没有预计销售。是否有任何方法可以强制它在没有基础数据的情况下显示这些月份?最简单的方法是为缺少的月份向数据集中添加
NULL
值。在大多数情况下,最好有一个包含日期(或至少几个月)的表。然后,您可以从此表中退出join,这样每个月都会显示在数据集中,但您将拥有
NULL
,其中没有要加入的数据。