Jakoś długi czas nie mogłem się przekonać do składni polecenia pivot. Jednak lata płyną i człowiek sie zmienia. Więc: Załóżmy, że mamy tabelę naszych płatności: create table platnosci(id_platnosci int identity(1,1), kwota decimal(18,2), podmiot varchar(10), data date) Następnie wypełnijmy tą tabelkę kilkoma wpisami i napiszmy polecenie: select * from (select podmiot, coalesce(kwota,0) kwota, YEAR(data) rok, MONTH(data) miesiac from platnoscia) as dane_zrodlowe pivot (sum(kwota) for podmiot in ([BANK], [CZYNSZ], [PRAD])) as pvt order by rok desc, miesiac desc Oczywiście pola BANK, CZYNSZ i PRAD odzwierciedlają wartości kolumny podmiot. Ogólnie jest przeciwnikiem stosowania składni "select *" jednak w tym przypadku jest to dla mnie dobre rozwiązanie. Kolumny jakie zwróci to zapytanie "ustawia" się bowiem przez odpowiednie manipulowanie składnią pivot, a select powinien je tylko pokazać. |