对于SSRS中的每个组(国家,城市......),我计算销售额除以汇率:
Sum(Fields!Net_Sales_Amount.Value)/LOOKUP(Fields!Country.Value, Fields!Country.Value, Fields!RATE.Value, "Currency")
如何创建此总和的总和(最后一组的总和 - 国家/地区)?
我找到的每个解决方案都显示了如何仅为单独的LOOKUP功能执行此操作。我需要用它来划分字段。
以下是我的报告的布局:
和结构:
要计算国家/地区的销售额,我只需要将销售额相加并将其除以LOOKUP函数,但我无法为Total计算。我需要一些以下的值。
答案 0 :(得分:4)
我认为您只需要更改要汇总的数据,因为看起来您只是在查找汇率?
如果是这种情况,您应该可以使用
=Sum(Fields!Net_Sales_Amount.Value/LOOKUP(Fields!Country.Value, Fields!Country.Value, Fields!RATE.Value, "Currency"))
在您的总文本框中,该文本框需要位于您用于显示各个值的组之外。
如果你想要查找很多值,然后sum
将它们全部组合在一起,那么这会更复杂一些。
您需要使用lookup
,而不是使用lookupset
,它使用相同的语法,但可以返回多个值。但是,没有内置函数可以sum
这些返回值,因为在lookupset
函数中返回的值实际上是对象而不是数字。因此,您需要使用自定义代码。
打开“报告属性”,然后打开“自定义代码”窗口,您可以在其中粘贴以下内容:
Function SumLookup(ByVal items As Object()) As Decimal
If items Is Nothing Then
Return Nothing
End If
Dim suma As Decimal = New Decimal()
Dim ct as Integer = New Integer()
suma = 0
ct = 0
For Each item As Object In items
suma += Convert.ToDecimal(item)
ct += 1
Next
If (ct = 0) Then return 0 else return suma
End Function
然后可以在文本框中将其用作表达式:
=Code.SumLookup(LookupSet(Fields!Country.Value, Fields!Country.Value, Fields!RATE.Value, "Currency"))
可以与其他数值一起用于聚合或计算。