【问题标题】:SSRS - Aggregate Total of MAX field in row groups & column groupsSSRS - 行组和列组中 MAX 字段的总和
【发布时间】:2021-12-09 15:07:11
【问题描述】:

我正在使用一个数据集来显示运费成本前后的客户利润(产品)。

我几乎一切正常,但我不知道如何正确地进行货运。我的老板希望 Freight 显示为一列而不是一行。

我的数据集是这样的:

客户# |客户姓名|财政年度 |财月 |货品代码 |收入 |齿轮 |货运 | [RN]

在我的报告中,我的行组是 CustomerNo 我的专栏组是 FiscalMonth(我正在使用 SSRS 进行数据透视)

对于运费,我使用的是 MAX(FREIGHT),因为客户在一个会计月内的每件商品的运费都是相同的。我使用了 MAX,因为 Distinct 不是 SSRS 中的选项。这似乎适用于个人客户和财政月份。

我遇到的问题是如何获取所有客户的会计月的 SUM(MAX(FREIGHT))(总计)以及客户所有会计月的总计。对于总计,我尝试了几种变体 =sum(Max(Fields!Freight.Value,"FiscalMonth"),"CustomerNo") 或 =sum(Max(Fields!Freight.Value,"CustomerNo")," FiscalMonth") 并不断收到以下错误: “textrun 'Textbox13.Paragraphs[0].TextRuns[0]' 的值表达式具有对聚合函数无效的范围参数。范围参数必须设置为等于名称的字符串常量包含组的名称、包含数据区域的名称或数据集的名称。"

"文本框 Textbox 的 Value 表达式在同一聚合表达式中同时使用行和列范围或来自两个不同数据轴的范围。所有嵌套聚合函数必须沿同一数据轴指定命名范围作为包含聚合。”

我已经进行了一些搜索并不断尝试调整我的表情,但似乎找不到答案。

【问题讨论】:

    标签: reporting-services


    【解决方案1】:

    我之前也遇到过同样的问题,最后写了一个函数来添加唯一值。数据作为带有 Pipe | 的单个字段发送。分离价值观。然后它会检查客户是否是唯一的,如果是,则添加价值。

    FUNCTION SUMCustomers(BYVAL ITEMS AS OBJECT()) AS DECIMAL
    'Returns Sum of unique Customers. Use as Code.SUMCustomers(Customer & "|" & Amount)
    IF ITEMS IS NOTHING THEN 
        RETURN NOTHING
        GOTO EXITSUB
    END IF
    
    DIM TEMP AS STRING
    DIM Customers AS STRING = ""
    DIM Customer AS STRING = ""
    DIM VALUE AS DECIMAL 
    
    FOR EACH ITEM AS OBJECT IN ITEMS
    
        TEMP = CONVERT.TOSTRING(ITEM)
    
        Customer = "|" & LEFT(TEMP, InStr(TEMP, "|"))
    
        VALUE = CDEC(MID(TEMP, InStr(TEMP, "|") + 1, LEN(TEMP)))
    
        IF InStr(Customers, Customer) = 0 Then  
            Customers = Customers + Customer 
            SUMCustomers = SUMCustomers + VALUE
        End If
    
    NEXT
    
    EXITSUB:
    END FUNCTION 
    

    您的问题的表达方式类似于

    =Code.SUMCustomers(Fields!CustomerNo.Value & "|" & Fields!Freight.Value)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多