SSRS报表矩阵中相邻年度分组列成本差值计算方法咨询
SSRS相邻年度成本Delta列实现方案
方案1:报表层直接计算(无需改动数据源)
- 先确认矩阵的列分组已按年度字段升序排序,保证年度排列顺序正确
- 选中Delta列对应平均成本差值的单元格,输入如下表达式:
=IIF( IsNothing(Previous(Fields!平均成本.Value, "年度列分组的实际名称")), Nothing, Fields!平均成本.Value - Previous(Fields!平均成本.Value, "年度列分组的实际名称") )
- 将表达式中的
年度列分组的实际名称替换为你矩阵中年度列分组的真实命名,平均成本替换为数据集里对应平均成本的字段名 - 首年Delta列的可见性可以直接绑定表达式
=IsNothing(Previous(Fields!平均成本.Value, "年度列分组的实际名称")),返回值为True时自动隐藏,无需手动设置 - 该逻辑完全匹配你示例中的需求:FY2019的Delta列会自动取上一年FY2018的平均成本做差值计算,得到-€0.01的结果
方案2:数据源层预计算(适合大数据量报表,性能更优)
- 如果你使用SQL查询作为数据集来源,可以直接用窗口函数提前算出相邻年度差值,示例SQL:
SELECT 零件编号, 零件描述, 年度, 采购数量, 总支出, 平均成本, 平均成本 - LAG(平均成本,1) OVER(PARTITION BY 零件编号 ORDER BY 年度) AS 年度成本差值 FROM 你的业务数据表
- 数据集生成后,直接将Delta列绑定
年度成本差值字段即可,无需在报表层编写复杂表达式
注意:如果你的年度是FYxxxx这类文本格式,需要先转换为数字类型再做排序,否则会出现取数顺序错误、差值计算结果不对的问题
内容的提问来源于stack exchange,提问作者nmelliott
相关产品推荐
相关产品推荐

