【问题标题】:Sum of distinct values in field SSRS 2005SSRS 2005 字段中不同值的总和
【发布时间】:2012-03-01 21:11:33
【问题描述】:

我正在使用调用 SQL Server 2000 数据库的数据集开发 SSRS 报表生成器。

查询正在获取几个不同字段的总和,并且还提取了与该客户编号有关的所有记录。我想得到总和的总和,但由于详细信息行,它已经结束了。基本上我想要的是不同总和列值的总和。

=Sum(Fields!tot.Value, "table1_Group3")

我看到你可以得到分组的总和,我尝试了上面的表达式,但它返回一个错误:

The Value expression for the textbox 'tot' has a scope parameter that is not 
    valid for an aggregate function...

table1_Group3 是在报告中保存总和值的组的名称。

关于如何在此报告中将distinct 值转换为sum 的任何建议。

【问题讨论】:

    标签: sql reporting-services field distinct


    【解决方案1】:
    =Sum(Fields!tot.Value, "table1_Group3")
    

    上面的代码将为您提供当前“table1_Group3”中所有行的“tot”总和。这意味着这个表达式只在 table1_Group3 中的某个地方有意义。否则,SSRS 不知道哪个是该组的当前实例。

    听起来您想对多个组的这个值求和,但只从组的每个实例中取一个“tot”。 (您确定该组中的所有行都将具有相同的“Tot”吗?)

    如果 tot 是返回数据中其他字段的总和,则只需将它们加到公式中即可。这可能还具有简化 SQL 查询的额外好处。

    其他一些可行的选项: - 更改您的 SQL 查询,以便每组只有一行获得 Tot 字段集。 - 在报告中使用嵌入式代码来保持一个运行总计,每个组仅添加一次,例如在组标题中。

    (如果可以选择升级到 2008R2 SSRS,则可以在此处使用 Lookup 功能,甚至可以回顾相同的数据集。)

    【讨论】:

    • 我意识到保存这个值的文本框必须是该组的一部分。我确实修改了查询,让一个临时表获取不同的值并将它们加在一起。然后我使用 ID 链接它。问题是我必须对 45 个得到不同金额的文本框执行此操作。
    【解决方案2】:

    使用 sql server 上的临时表将查询/数据集更改为 sum(distinct tot)

    【讨论】:

    • 请详细说明并检查格式提示以写出有效的答案。
    【解决方案3】:

    我想你需要写sum(distinct columnName)

    【讨论】:

    • 我尝试在文本框的表达式中这样做,但不支持 distinct 并引发错误。
    • 明显不支持 rdlc ,它适用于 sql 查询
    猜你喜欢
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多