SSRS 计数或求和表达式
SSRS Count or Sum expression
我不明白为什么这些 Total 表达式不起作用...
我正在尝试将日期晚于今天的任何单元格与具有 "Not Reqd" 的任何单元格相加,然后将其除以行数,以获得百分比。
我得到的只是 #Error
。
这些是我试过的表达方式:
=SUM(IIf(Fields!Jetter_Trng.Value >Today OR
Fields!Jetter_Trng.Value = "Not Reqd",1,0)))/(Count(Fields!Jetter_Trng.Value)
和
=Count(IIf(Fields!Jetter_Trng.Value >Today OR
Fields!Jetter_Trng.Value = "Not Reqd",1,Nothing)))/(Count(Fields!Jetter_Trng.Value)
"Not Reqd" 字符串来自将日期 (01/01/1950) 更改为 "Not Reqd" 的表达式。也许这是把事情搞砸了:
=iif(Fields!Jetter_Trng.Value = "01/01/1950", "Not Reqd", Fields!Jetter_Trng.Value)
当前工作表达式(不是寻找"Not Reqd")是:
=COUNT(IIF(Fields!Jetter_Trng.Value>Today,1,Nothing)))/(Count(Fields!Name.Value))
我有点迷茫...
关于你目前的表达的几点说明
Jetter_Trng 似乎是表示日期或“Not Reqd”的字符串。如果不首先使用 CDATE()
将字符串转换为日期类型,则无法将字符串与日期进行比较
大括号数量((
和)
)不匹配
你的问题的根源是你正在使用 Jetter_Trng 到 return 一个日期,或者值“Not Reqd”。
当 SSRS 尝试计算一个表达式时,它会同时进行。它不遵循寻找答案的路径,而忽略其他路径。因此,当您尝试比较
Fields!Jetter_Trng.Value >Today
这是将字符串与日期进行比较,并抛出错误,因为这毫无意义
"Not Reqd" > Today
您将无法仅使用一个字符串类型的字段来完成所有您想做的事情。
你的选择是
- 使用两个字段——日期和表示不需要的标志,或者
- 使用一个字段 - 但有一个“无效日期”(可能是 01/01/2100),然后您可以将其视为“不需要”值,并检查当前日期是否小于该日期(它永远都会)
使用此处的第二个选项,您可以使用以下表达式创建所需的计算
=sum(iif(CDate(Fields!Jetter_Trng.Value) > Today, 1, 0)) /
Count(Fields!Jetter_Trng.Value)
将按如下方式评估此数据集
我不明白为什么这些 Total 表达式不起作用...
我正在尝试将日期晚于今天的任何单元格与具有 "Not Reqd" 的任何单元格相加,然后将其除以行数,以获得百分比。
我得到的只是 #Error
。
这些是我试过的表达方式:
=SUM(IIf(Fields!Jetter_Trng.Value >Today OR
Fields!Jetter_Trng.Value = "Not Reqd",1,0)))/(Count(Fields!Jetter_Trng.Value)
和
=Count(IIf(Fields!Jetter_Trng.Value >Today OR
Fields!Jetter_Trng.Value = "Not Reqd",1,Nothing)))/(Count(Fields!Jetter_Trng.Value)
"Not Reqd" 字符串来自将日期 (01/01/1950) 更改为 "Not Reqd" 的表达式。也许这是把事情搞砸了:
=iif(Fields!Jetter_Trng.Value = "01/01/1950", "Not Reqd", Fields!Jetter_Trng.Value)
当前工作表达式(不是寻找"Not Reqd")是:
=COUNT(IIF(Fields!Jetter_Trng.Value>Today,1,Nothing)))/(Count(Fields!Name.Value))
我有点迷茫...
关于你目前的表达的几点说明
Jetter_Trng 似乎是表示日期或“Not Reqd”的字符串。如果不首先使用 CDATE()
将字符串转换为日期类型,则无法将字符串与日期进行比较
大括号数量(
(
和)
)不匹配
你的问题的根源是你正在使用 Jetter_Trng 到 return 一个日期,或者值“Not Reqd”。
当 SSRS 尝试计算一个表达式时,它会同时进行。它不遵循寻找答案的路径,而忽略其他路径。因此,当您尝试比较
Fields!Jetter_Trng.Value >Today
这是将字符串与日期进行比较,并抛出错误,因为这毫无意义
"Not Reqd" > Today
您将无法仅使用一个字符串类型的字段来完成所有您想做的事情。
你的选择是
- 使用两个字段——日期和表示不需要的标志,或者
- 使用一个字段 - 但有一个“无效日期”(可能是 01/01/2100),然后您可以将其视为“不需要”值,并检查当前日期是否小于该日期(它永远都会)
使用此处的第二个选项,您可以使用以下表达式创建所需的计算
=sum(iif(CDate(Fields!Jetter_Trng.Value) > Today, 1, 0)) /
Count(Fields!Jetter_Trng.Value)
将按如下方式评估此数据集