Matrix 如何在ssrs中添加百分比列

Matrix 如何在ssrs中添加百分比列,matrix,reporting-services,ssrs-2008,reporting,ssrs-2012,Matrix,Reporting Services,Ssrs 2008,Reporting,Ssrs 2012,我在报表生成器中有一个矩阵,用于为每个员工生成每个会计年度的实际余额,其中会计年度为列组 我需要添加一个字段来计算参数中所选年份之间的年环比% 例如,如果我在参数中选择了2018财年、2017财年,那么除了2018年实际余额和2017年实际余额外,我还应该有年环比%=(2018年资产负债表-2017年资产负债表)/2017年资产负债表 该公式应考虑除以零 您必须在SQL查询中创建此列,本周早些时候我遇到了同样的问题 使用以下命令在SQL中创建查询: With Year2017AB as ( s

我在报表生成器中有一个矩阵,用于为每个员工生成每个会计年度的实际余额,其中会计年度为列组

我需要添加一个字段来计算参数中所选年份之间的年环比% 例如,如果我在参数中选择了2018财年、2017财年,那么除了2018年实际余额和2017年实际余额外,我还应该有年环比%=(2018年资产负债表-2017年资产负债表)/2017年资产负债表

该公式应考虑除以零


您必须在SQL查询中创建此列,本周早些时候我遇到了同样的问题

使用以下命令在SQL中创建查询:

With Year2017AB as (
select column names, cast(actual_bal as float) as Balance7 
from data
where fiscal_year = '2017')
, Year2018AB as (
select column names, cast(actual_bal as float) as Balance8
from data
where fiscal_year = '2018')
select name column, Balance7, Balance8, (Balance8-Balance7)/Balance7 as YOY% 
from data d
left join Year Year2017AB s
on d.name = s.name
left join Year2018AB e
on d.name = e.name

确保将这些值转换为float,以便读取实际答案。将其格式化为SSRS中的百分比。

您的公式应该是

=CStr(IIF(Parameter!<paramname>.Value ="2018, 2017", IIF(SUM(Fields!2017AB.Value > 0 ,SUM(Fields!2017AB.Value -Fields!2017AB.Value)/SUM(Fields!2017AB.Value),0)) & "%"
=CStr(IIF(Parameter!.Value=“2018,2017)”,IIF(SUM(Fields!2017AB.Value>0,SUM(Fields!2017AB.Value-Fields!2017AB.Value)/SUM(Fields!2017AB.Value),0))和“%”

如果没有对显示AB值的行进行分组,则不要使用sum。

我使用以下公式进行了求解,它还考虑了除以零:

=IIF(SUM(iif(Fields!FISCAL_YEAR.Value = 2017,cdbl(Fields!actual_BAL.Value),0.00))=0,0,(SUM(iif(Fields!FISCAL_YEAR.Value = 2018,cdbl(Fields!actual_BAL.Value),0.00))-SUM(iif(Fields!FISCAL_YEAR.Value = 2017,cdbl(Fields!actual_BAL.Value),0.00)))/IIF(SUM(iif(Fields!FISCAL_YEAR.Value = 2017,cdbl(Fields!actual_BAL.Value),0.00))=0,1,SUM(iif(Fields!FISCAL_YEAR.Value = 2017,cdbl(Fields!actual_BAL.Value),0.00))))*100

一份报告中的比较将在2年之间,或者可能是2018-2017年、2017-2016年等更多年份的夫妇?