SQL Сервер PIVOT по нескольким столбцам - PullRequest
0 голосов
/ 21 марта 2020

Я уже ищу несколько опорных точек, но все еще не нашел аналогичного моему. Я использую SQL Server 2008.

Я уже создал запрос с сводной точкой:

select * 
from 
    (select 
         branch, sum(balance) [balance], 
         year(docdate) [year], month(docdate) [month]
     from 
         tempprt 
     group by 
         branch, year(docdate), month(docdate)) as a
pivot 
    (sum(balance) 
     for month in ([1], [2])) as pvt1

и получаю следующие выходные данные:

enter image description here

Теперь я хочу сложить столбцы 1 и 2 в год и сделать год столбцами:

enter image description here

Ваша помощь приветствуется. Спасибо!

1 Ответ

2 голосов
/ 21 марта 2020

Вы можете попробовать это ниже скрипт-

select branch,

SUM(CASE WHEN year(docdate) = 2019 THEN balance ELSE 0 END) [2019],
SUM(CASE WHEN year(docdate) = 2019 AND MONTH(docdate) = 1 THEN balance ELSE 0 END) [2019_1],
SUM(CASE WHEN year(docdate) = 2019 AND MONTH(docdate) = 2 THEN balance ELSE 0 END) [2019_2],

SUM(CASE WHEN year(docdate) = 2018 THEN balance ELSE 0 END) [2018],
SUM(CASE WHEN year(docdate) = 2018 AND MONTH(docdate) = 1 THEN balance ELSE 0 END) [2018_1],
SUM(CASE WHEN year(docdate) = 2018 AND MONTH(docdate) = 2 THEN balance ELSE 0 END) [2018_2]

from tempprt 
GROUP BY branch
...