Reporting services SSRS分组总金额问题
我正在创建一个SSRS报告,显示未来12个月的预计销售额,按ProductID分组。虽然详细信息单元格显示正确,但每个月的组总和显示的是12个月的所有销售额,而不仅仅是相关月份的销售额 例如,以下是单个产品的所有表值: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
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
,其中没有要加入的数据。