【问题标题】:SQL Server Reporting Services 2005 - How to Put a Conditional Total in a Header RowSQL Server Reporting Services 2005 - 如何在标题行中放置条件总计
【发布时间】:2011-01-07 01:30:41
【问题描述】:

假设我有一张这样的桌子:

Customer,Invoice Type,Balance
A,Good,50
A,Good,10
A,Bad,20
B,Good,20

我想做这样的报告:

Customer,Invoice Type,Balance,Total Adjusted Balance
A            40    
   Good
        50
        10    
   Bad
        20 
B            20    
   Good
        20

调整后的总余额是良好发票余额的总和减去客户的不良发票余额的总和。

调整后的平衡是我在布局编辑器中使用表达式来计算的吗?还是有更好的办法?

(如果我需要在布局编辑器中使用表达式,我该怎么做?)

【问题讨论】:

    标签: sql sql-server tsql reporting-services reporting


    【解决方案1】:

    您只需对标题中的字段求和即可。

    Reporting Services 非常了解上下文或“范围”。

    因此,如果您有不同的分组,即国家、州、城镇

    通过引用您希望为其中每一个(例如 SalesAmt)求和的值,它只会为该特定组中的那些值求和。

    http://msdn.microsoft.com/en-us/library/bb630415.aspx

    【讨论】:

      【解决方案2】:

      我从未使用过 SSRS,所以我不知道是否有任何预定义的方法来计算它。您可以使用以下 SQL 来完成:

      SELECT
        Customer,
        [Invoice Type],
        Balance,
        SUM(CASE WHEN [Invoice Type] = 'Good' THEN Balance ELSE -Balance END) OVER (PARTITION BY Customer) AS [Total Adjusted Balance]
      FROM table1;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-10
        • 1970-01-01
        • 2010-09-09
        相关资源
        最近更新 更多