SSRS Expression如何比较两个不同数据集的值?

时间:2015-01-26 22:01:13

标签: reporting-services

所以我专门搜索了这个,但无法在任何地方找到示例或答案。

我正在尝试将一个数据集的值与另一个数据集的值进行比较,但它不起作用。

这是我的表达:

=IIF((Fields!IC_ADV.Value + Fields!OC_ADV.Value) > 0, Max(Fields!AMOUNT.Value, "Data_bucket_info") > 15, nothing)

我得到的只是“真实”。如果我删除'> 15'然后我得到一个值,但它不是正确的值。我试过用First,Min,Sum取代Max;没有'> 15'我再次获得一个值但不是正确的值,并且使用'> 15'我得到“真”或“假”。

如果我有Max in,我希望获得所有金额的AMOUNT的最大值> 15;如果我有Min,我希望获得所有金额的AMOUNT的最小值> 15。

例如:

AMOUNT以5为增量;所以5,10,15,20,25 ....等等。

如果(Fields!IC_ADV.Value + Fields!OC_ADV.Value)= 24那么我想要的是AMOUNT显示25.如果(Fields!IC_ADV.Value + Fields!OC_ADV.Value)= 3那么我想要AMOUNT显示5。

我在SSRS中得到的警告是'textrun的值表达式'Textbox12.Paragraphs [0] .TextRuns [0]'对非数字的数据使用数字聚合函数。数字聚合函数(Sum,Avg,StDev,Var,StDevP和VarP)只能聚合数值数据。'

但是AMOUNT字段是一个数值。

2 个答案:

答案 0 :(得分:0)

从您的描述中可以清楚地了解您要实现的目标。但是根据我的理解,您希望将IC_ADVOC_ADV的总和与某些值相匹配,具体取决于您希望得到的值。为此你可以设置如下表达式,

=IIF((Fields!IC_ADV.Value + Fields!OC_ADV.Value) = 24,Max(Fields!AMOUNT.Value, "Data_bucket_info"),IIF((Fields!IC_ADV.Value + Fields!OC_ADV.Value) = 3,Min(Fields!AMOUNT.Value, "Data_bucket_info"),Nothing)

但是如果你想根据一些常见字段将一个数据集的匹配值与另一个数据集值匹配,那么你应该看一下LookUpHere is more info

答案 1 :(得分:0)

在这种情况下,我认为以数学方式制作它会更好。请尝试以下表达式:

=((Fields!IC_ADV.Value + Fields!OC_ADV.Value)\ 5 + 1)* 5