现场不同结果的不同 "IF" 陈述 - SSRS
Different "IF" statement for different outcomes in field - SSRS
美好的一天,
我正在创建一个报告,我想根据字段中的变量分配一个唯一的"IF"
语句。
比如在一列中,如果一行显示"MCAD"
,我想让它在它旁边的列中计算这个公式:
iif(Fields!jhapostingdate.Value>"12/30/2016",(Sum(Fields!CurrentBalance.Value)-1803418)/6000000," ")
如果该行显示 "RGAD"
,我希望它在它旁边的列中计算此公式:
iif(Fields!jhapostingdate.Value>"12/30/2016",(Sum(Fields!CurrentBalance.Value)-6977142)/10000000," ")
等等……
我理解以下表达是不正确的,但它可能会让大家明白我的意图:
=iif(Fields!OfficerCode.Value="mcad",(iif(Fields!jhapostingdate.Value>"12/30/2016",(Sum(Fields!CurrentBalance.Value)-1803418)/6000000," "),"")
,iif(Fields!OfficerCode.Value="rgad",(iif(Fields!jhapostingdate.Value>"12/30/2016",(Sum(Fields!CurrentBalance.Value)-6977142)/10000000," "),"")
,iif(Fields!OfficerCode.Value="srf",(iif(Fields!jhapostingdate.Value>"12/30/2016",(Sum(Fields!CurrentBalance.Value)-3427940)/3000000," "),"")
,iif(Fields!OfficerCode.Value="maf",(iif(Fields!jhapostingdate.Value>"12/30/2016",(Sum(Fields!CurrentBalance.Value)-6977142)/10000000," "),"")
是否有特定的函数或表达式?
欢迎任何意见!
您可以使用 Switch
:
来简化它
=Switch(
Fields!OfficerCode.Value="mcad",
iif(Fields!jhapostingdate.Value>DateSerial(2016,12,30),(Sum(Fields!CurrentBalance.Value)-1803418)/6000000," "),
Fields!OfficerCode.Value="rgad",
iif(Fields!jhapostingdate.Value>DateSerial(2016,12,30),(Sum(Fields!CurrentBalance.Value)-6977142)/10000000," "),
Fields!OfficerCode.Value="srf",
iif(Fields!jhapostingdate.Value>DateSerial(2016,12,30),(Sum(Fields!CurrentBalance.Value)-3427940)/3000000," "),
Fields!OfficerCode.Value="maf",
iif(Fields!jhapostingdate.Value>DateSerial(2016,12,30),(Sum(Fields!CurrentBalance.Value)-6977142)/10000000," "),
true,""
)
还可能需要使用 DateSerial 函数来创建硬编码日期:
DateSerial(2016,12,30)
将产生 12/30/2016
日期,而 "12/30/2016"
只是一个字符串。您也可以使用 CDate("2016-12-30")
.
如果有帮助请告诉我。
美好的一天,
我正在创建一个报告,我想根据字段中的变量分配一个唯一的"IF"
语句。
比如在一列中,如果一行显示"MCAD"
,我想让它在它旁边的列中计算这个公式:
iif(Fields!jhapostingdate.Value>"12/30/2016",(Sum(Fields!CurrentBalance.Value)-1803418)/6000000," ")
如果该行显示 "RGAD"
,我希望它在它旁边的列中计算此公式:
iif(Fields!jhapostingdate.Value>"12/30/2016",(Sum(Fields!CurrentBalance.Value)-6977142)/10000000," ")
等等……
我理解以下表达是不正确的,但它可能会让大家明白我的意图:
=iif(Fields!OfficerCode.Value="mcad",(iif(Fields!jhapostingdate.Value>"12/30/2016",(Sum(Fields!CurrentBalance.Value)-1803418)/6000000," "),"")
,iif(Fields!OfficerCode.Value="rgad",(iif(Fields!jhapostingdate.Value>"12/30/2016",(Sum(Fields!CurrentBalance.Value)-6977142)/10000000," "),"")
,iif(Fields!OfficerCode.Value="srf",(iif(Fields!jhapostingdate.Value>"12/30/2016",(Sum(Fields!CurrentBalance.Value)-3427940)/3000000," "),"")
,iif(Fields!OfficerCode.Value="maf",(iif(Fields!jhapostingdate.Value>"12/30/2016",(Sum(Fields!CurrentBalance.Value)-6977142)/10000000," "),"")
是否有特定的函数或表达式?
欢迎任何意见!
您可以使用 Switch
:
=Switch(
Fields!OfficerCode.Value="mcad",
iif(Fields!jhapostingdate.Value>DateSerial(2016,12,30),(Sum(Fields!CurrentBalance.Value)-1803418)/6000000," "),
Fields!OfficerCode.Value="rgad",
iif(Fields!jhapostingdate.Value>DateSerial(2016,12,30),(Sum(Fields!CurrentBalance.Value)-6977142)/10000000," "),
Fields!OfficerCode.Value="srf",
iif(Fields!jhapostingdate.Value>DateSerial(2016,12,30),(Sum(Fields!CurrentBalance.Value)-3427940)/3000000," "),
Fields!OfficerCode.Value="maf",
iif(Fields!jhapostingdate.Value>DateSerial(2016,12,30),(Sum(Fields!CurrentBalance.Value)-6977142)/10000000," "),
true,""
)
还可能需要使用 DateSerial 函数来创建硬编码日期:
DateSerial(2016,12,30)
将产生 12/30/2016
日期,而 "12/30/2016"
只是一个字符串。您也可以使用 CDate("2016-12-30")
.
如果有帮助请告诉我。