Reputation: 57
I have a large SSRS report that I am trying to grab the max values from multiple fields.Right now I have IIF grabbing the MAX value between 2 dates but I want the MAX value from all the fields in the report. here is what I have to grab the MAX between 2 values
=IIF(((IIF(Fields!OnOrder1Day.Value<Fields!Sold1Day.Value,
Fields!Sold1Day.Value, Fields!OnOrder1Day.Value) +
IIF(Fields!OnOrder2Day.Value<Fields!Sold2Day.Value, Fields!Sold2Day.Value,
Fields!OnOrder2Day.Value) +
IIF(Fields!OnOrder3Day.Value<Fields!Sold3Day.Value, Fields!Sold3Day.Value,
Fields!OnOrder3Day.Value)) - (Fields!lonhand.Value -
Fields!OnOrderToday.Value)-Fields!onpo.Value)<0, 0,
((IIF(Fields!OnOrder1Day.Value<Fields!Sold1Day.Value, Fields!Sold1Day.Value,
Fields!OnOrder1Day.Value) +
IIF(Fields!OnOrder2Day.Value<Fields!Sold2Day.Value, Fields!Sold2Day.Value,
Fields!OnOrder2Day.Value) +
IIF(Fields!OnOrder3Day.Value<Fields!Sold3Day.Value, Fields!Sold3Day.Value,
Fields!OnOrder3Day.Value)) - (Fields!lonhand.Value -
Fields!OnOrderToday.Value)-Fields!onpo.Value))
What I want to do is find the MAX from all of the following fields:
Fields!OnOrder1Day.Value
Fields!Sold1Day.Value
Fields!OnOrder2Day.Value
Fields!Sold2Day.Value
Fields!OnOrder3Day.Value
Fields!Sold3Day.Value
Fields!OnOrder4Day.Value
Fields!Sold4Day.Value
Fields!OnOrder5Day.Value
Fields!Sold5Day.Value
Fields!OnOrder6Day.Value
Fields!Sold6Day.Value
Is it possible to do something like
MAX(Fields!OnOrder1Day.Value,Fields!Sold1Day.Value,Fields!OnOrder2Day.Value,Fields!Sold2Day.Value,Fields!OnOrder3Day.Value,Fields!Sold3Day.Value,Fields!OnOrder4Day.Value,Fields!Sold4Day.Value,Fields!OnOrder5Day.Value,Fields!Sold5Day.Value,Fields!OnOrder6Day.Value,Fields!Sold6Day.Value)
Upvotes: 0
Views: 3835
Reputation: 81
You can add custom function, something like this
Public Function GetMaxDate(val1 as Date, val2 as Date) as Date
Return iif(val1 > val2, val1, val2)
End Function
And use it in your expressions
=Code.GetMaxDate(Code.GetMaxDate(Code.GetMaxDate(Code.GetMaxDate(Max(Fields!OnOrder1Day.Value),
Max(Fields!Sold1Day.Value)
),
Max(Fields!OnOrder2Day.Value)
),
Max(Fields!OnOrder2Day.Value)
),
Max(Fields!OnOrder3Day.Value)
)
etc.
Or define any other function arguments as you wish
Upvotes: 1
Reputation: 4493
If I understand correct you want the highest value of multiple fields in the dataset. Basically, you want the max of the max. It's doable using loads and loads of embedded IIFs, just a pain in the buns.
IIF(
(MAX(Fields!OnOrder1Day.Value) > MAX(Fields!OnOrder2Day.Value)) AND
(MAX(Fields!OnOrder1Day.Value) > MAX(Fields!OnOrder3Day.Value)) *ETC*,
Fields!OnOrder1Day.Value,
IIF(
(MAX(Fields!OnOrder2Day.Value) > MAX(Fields!OnOrder1Day.Value)) AND
(MAX(Fields!OnOrder2Day.Value) > MAX(Fields!OnOrder3Day.Value)) *ETC*,
MAX(Fields!OnOrder2Day.Value,
IIF( *ETC*),
),
)
Upvotes: 1