【问题标题】:SSRS sum(distinct()) equivalentSSRS sum(distinct()) 等效
【发布时间】:2010-03-29 16:09:07
【问题描述】:

我目前正在处理一份 SSRS 2008 报告,该报告返回的数据集类似于以下内容:

Job# ClientId MoneyIn MoneyOut
------------------------------

1    ABC123    10      25
1    ABC123    10      25
1    ABC123    5       25
2    XYZ123    25      50
2    XYZ123    25      50
3    XYZ123    15      15

如果作业已正确平衡,则MoneyOut 应等于作业的MoneyIn 总量。

我遇到的问题是,在 SSRS 的 tablix 中显示此内容时,我可以通过将字段设置为 =first(Fields!MoneyOut.Value) 来为作业返回正确的 MoneyOut 值,但我还需要将这些值相加day 并尝试执行 =sum(first(Fields!MoneyOut.Value)) 会产生有关嵌套聚合函数的错误。

我还尝试使用 =sum(ReportItems!MoneyOut1.Value) 之类的东西对文本框的值求和,这会产生一个错误,您只能在页眉或页脚中的报告项目上使用聚合。

所以我的问题是,是否有某种方法可以在 SSRS 报告中复制 distinct() 的功能,或者是否有某种方法可以汇总我不知道的文本字段的值?

【问题讨论】:

    标签: sql-server reporting-services ssrs-2008 business-intelligence


    【解决方案1】:

    为什么在 SQL Server 中需要 SUM(DISTINCT ...) 函数的等效函数?

    听起来您需要更改向报告提供数据的查询,而不是尝试在报告本身中进行。

    【讨论】:

    • 将此标记为已接受的答案,看来我昨天的想法是错误的。我在视图中的查询中添加了一些分区,现在它可以正常工作了。
    • 我们能否更详细地了解解决方案是什么?这个答案没有帮助。
    • @Jeff Walker Code Ranger - HurnsMobile 要求 SSRS 具有 DISTINCT 关键字的功能,我建议他应该回到数据源并执行操作在那里并使用SSRS来显示它。当在 SQL Server 中可以更轻松地完成时,他专注于处理报表中的数据。您是否在以类似方式处理某些 SQL 或报告时遇到困难?发布一个新问题,我会尽力提供帮助。
    【解决方案2】:

    如果我真的理解您的问题,您必须使用 group 对数据进行分组,并在每个组中汇总您最喜欢的数据。

    【讨论】:

      【解决方案3】:

      将您的“MoneyOut”字段替换为以下内容:

      CASE 
          WHEN ROW_NUMBER() OVER (PARTITION BY MoneyOut ORDER BY ClientId) = 1
          THEN MoneyOut
          ELSE NULL
          END AS MoneyOut
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-13
        • 1970-01-01
        • 1970-01-01
        • 2023-04-02
        相关资源
        最近更新 更多