Reporting services 一个棘手的ssrs问题
我有一份ssrs报告。有一个矩阵,从外部到内部有两个行组:group-item和一列group:year。我希望它相当容易理解。请参考下图Reporting services 一个棘手的ssrs问题,reporting-services,Reporting Services,我有一份ssrs报告。有一个矩阵,从外部到内部有两个行组:group-item和一列group:year。我希望它相当容易理解。请参考下图 Group CAGR 2010 2011 Group1 CAGR_group1 sum_group1_2010 sum_group1_2011
Group CAGR 2010 2011
Group1 CAGR_group1 sum_group1_2010 sum_group1_2011
Item1 CAGR_item1 sum_item1_2010 sum_item1_2011
Item2 CAGR_item2 sum_item2_2010 sum_item2_2011
sum_group1_2010和sum_group1_2011是每年项目1和项目2的总和。
复合年增长率项目1和复合年增长率项目2通过以下公式计算:
CAGR = (sum_item2_2011/sum_item2_2010)^(1/n) - 1 (n=2011-2010)
我用代码创建了这个函数。计算每个项目的复合年增长率很简单。我使用了以下表达式:注意,在本例中,首先指2010年,最后指2011年
Code.CAGR(First(Fields!Amount.Value).ToString, Last(Fields!Amount.Value).ToString, Last(Fields!year.Value).ToString - First(Fields!year.Value).ToString)
现在的问题是如何计算CAGR_组1?我打算用
Code.CAGR(First(Sum(Fields!Amount.Value)).ToString, Last(Sum(Fields!Amount.Value)).ToString, Last(Fields!year.Value).ToString - First(Fields!year.Value).ToString).
然后报告的SSR不能在另一个聚合函数中使用聚合函数
希望一切都清楚。谢谢。我认为最简单的方法是将计算添加到SQL查询中:它可以是现有查询中的一个新列,对每个记录行计算相同的值。然后在报告中只使用第一个函数
或者,如果您向聚合函数(如FIRSTSUMFields)添加适当的范围语句,这可能会起作用!Amount.Value、ItemGroupName、Group1GroupName我最终使用sql进行所有计算,并让SSRS显示结果。顺便说一句,我用的是SSRS2008。第一场!Amount.Value、ItemGroupName、Group1GroupName apporach也不起作用,因为范围参数必须设置为等于包含组名称的字符串常量。。。。