SumIIF表达式中的数据类型问题

gfu*_*r40 1 rdlc reportingservices-2005 reporting-services

我正在创建一个RDL,并且试图求和。源数据类型为(numeric(11,4),null)。我尝试使用的表达式是:

      =sum(iif(Fields!cal_variance.value > 0, Fields!cal_variance.value,0))
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

      =sum(iif(Cdbl(Fields!cal_variance.value) > 0, Cdbl(Fields!cal_variance.value),0))
Run Code Online (Sandbox Code Playgroud)

我仍然收到相同的错误:

“文本框'textbox19'的Value表达式对各种数据类型的数据使用聚合函数。除First,Last,Previous,Count和CountDistinct之外的聚合函数只能聚合单个数据类型的数据。预览完成-0错误,1条警告”

我还应该提到列“ cal_variance”是派生列:

       =IIF((Fields!COMMENT.Value) = "DC01 MONTHLY - GROCERY CHECKING" 
OR (Fields!COMMENT.Value) = "DC01 MONTHLY - DAIRY CHECKING"
OR (Fields!COMMENT.Value) = "DC01 MONTHLY - PRODUCE CHECKING"
OR (Fields!COMMENT.Value) = "DC01 MONTHLY - MEAT CHECKING"
OR (Fields!COMMENT.Value) = "DC01 MONTHLY - FROZEN CHECKING"
OR (Fields!COMMENT.Value) = "DC01 MONTHLY - FRESH PUTAWAY",
     Fields!cal_amount.Value / 9, Fields!cal_stdtime.Value - Fields!cal_actualtime.Value)
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏!

Ian*_*ton 5

如果基础字段是numeric,则需要确保的两侧IIfdecimal在SSRS表达式中:

=Sum(IIf(Fields!cal_variance.value > 0, Fields!cal_variance.value, CDec(0)))
Run Code Online (Sandbox Code Playgroud)

上面的第二个示例失败了,因为您正在将double加上integer

  • 你真棒。谢谢! (2认同)