如何在ssrs中添加百分比列
how to add percentage column in ssrs
我在报表生成器中有一个矩阵,可以为每位员工生成每个 Fiscal_year 的实际余额,其中 fiscal_year 是列组。
我需要添加一个字段来计算参数中所选年份之间的 YOY%
例如,如果我在参数中选择 Fiscal_year 2018、2017,除了 2018 年实际余额和 2017 年实际余额之外,我还应该有 YOY% = (2018 AB -2017 AB)/2017 AB
公式应考虑除以零。
您必须在 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
请务必将值转换为浮点数,以便读取实际答案。在 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)) & "%"
如果显示 AB 值的行没有分组,请不要使用求和。
我用下面的公式解决了它,它也考虑了除以零:
=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
我在报表生成器中有一个矩阵,可以为每位员工生成每个 Fiscal_year 的实际余额,其中 fiscal_year 是列组。
我需要添加一个字段来计算参数中所选年份之间的 YOY% 例如,如果我在参数中选择 Fiscal_year 2018、2017,除了 2018 年实际余额和 2017 年实际余额之外,我还应该有 YOY% = (2018 AB -2017 AB)/2017 AB
公式应考虑除以零。
您必须在 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
请务必将值转换为浮点数,以便读取实际答案。在 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)) & "%"
如果显示 AB 值的行没有分组,请不要使用求和。
我用下面的公式解决了它,它也考虑了除以零:
=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