Сводная итоговая строка SQL Pivot? - PullRequest
0 голосов
/ 30 сентября 2018

Моя сводная таблица работает с пользователем, и этот пользователь может просматривать разные учетные записи.Ниже показано, как выглядит сводная таблица

   Accounts  | Toms
    Bank        40
    Bank2       50

. И сводный код для нее: ...

SELECT *  FROM 
    (SELECT  
          UserPivot.[parties]
          ,UserPivot.[Accounts]
          ,UserPivot.[CurrentAmount] 
          ,UserPivot.[Plus / Negative]
          FROM UserPivot) AS BaseData

PIVOT(
    SUM(BaseData.[CurrentAmount])
    FOR BaseData.[parties]
    IN([Toms])
) AS PivotTable

Есть ли способ расчета общей суммы Тома?Счета?

Спасибо всем за ваши предложения!

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Если честно, я бы предпочел использовать отчет для этого.Но если бы я был вынужден сделать это в запросе, я бы использовал стандартное агрегирование с условием и оператором ROLLUP (для промежуточных итогов и итоговой суммы):

SELECT Accounts, [Plus / Negative], SUM(CurrentAmount) AS Toms
FROM UserPivot
WHERE parties = 'Toms'
GROUP BY [Accounts], [Plus / Negative] WITH ROLLUP;
0 голосов
/ 30 сентября 2018

Я бы использовал условное агрегирование, чтобы вы могли использовать GROUPING SETS:

SELECT UserPivot.Accounts,
       SUM(CASE WHEN UserPivot.parties = 'Toms' THEN UserPivot.CurrentAmount
FROM UserPivot
GROUP BY GROUPING SETS ( ( UserPivot.Accounts), () );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...