从 SSRS 中的多个字段中选择 MAX
Pick MAX from multiple fields in SSRS
我有一个很大的 SSRS 报告,我试图从多个 fields.Right 中获取最大值,现在我有 IIF 获取两个日期之间的最大值,但我想要从所有字段中获取最大值报告。这是我必须在 2 个值之间获取 MAX
=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))
我想做的是从以下所有字段中找到最大值:
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
是否可以做类似
的事情
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)
如果我理解正确,您需要数据集中多个字段的最大值。基本上,您想要最大值中的最大值。使用大量嵌入式 IIF 是可行的,只是麻烦。
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*),
),
)
你可以添加自定义函数,像这样
Public Function GetMaxDate(val1 as Date, val2 as Date) as Date
Return iif(val1 > val2, val1, val2)
End Function
并在你的表达中使用它
=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)
)
等等
或根据需要定义任何其他函数参数
我有一个很大的 SSRS 报告,我试图从多个 fields.Right 中获取最大值,现在我有 IIF 获取两个日期之间的最大值,但我想要从所有字段中获取最大值报告。这是我必须在 2 个值之间获取 MAX
=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))
我想做的是从以下所有字段中找到最大值:
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
是否可以做类似
的事情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)
如果我理解正确,您需要数据集中多个字段的最大值。基本上,您想要最大值中的最大值。使用大量嵌入式 IIF 是可行的,只是麻烦。
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*),
),
)
你可以添加自定义函数,像这样
Public Function GetMaxDate(val1 as Date, val2 as Date) as Date
Return iif(val1 > val2, val1, val2)
End Function
并在你的表达中使用它
=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)
)
等等
或根据需要定义任何其他函数参数