Mam bardzo trudny czas próbując dowiedzieć się, jak wykonać dynamiczny węzeł w SQL Server 2008 z wieloma kolumnami.Serwer SQL: dynamiczny wykres przestawny na 5 kolumnach
Moja Przykładowa tabela wygląda następująco:
ID YEAR TYPE TOTAL VOLUME
DD1 2008 A 1000 10
DD1 2008 B 2000 20
DD1 2008 C 3000 30
DD1 2009 A 4000 40
DD1 2009 B 5000 50
DD1 2009 C 6000 60
DD2 2008 A 7000 70
DD2 2008 B 8000 80
DD2 2008 C 9000 90
DD2 2009 A 10000 100
DD2 2009 B 11000 110
DD2 2009 C 12000 120
i próbuję przegubu go w następujący sposób:
ID 2008_A_TOTAL 2008_A_VOLUME 2008_B_TOTAL 2008_B_VOLUME 2008_C_TOTAL 2008_C_VOLUME 2009_A_TOTAL 2009_A_VOLUME 2009_B_TOTAL 2009_B_VOLUME 2009_C_TOTAL 2009_C_VOLUME
DD1 1000 10 2000 20 3000 30 4000 40 5000 50 6000 60
DD2 7000 70 8000 80 9000 90 10000 100 11000 110 12000 120
My SQL Server 2008 kwerenda jest następujący, aby utworzyć tabelę:
CREATE TABLE ATM_TRANSACTIONS
(
ID varchar(5),
T_YEAR varchar(4),
T_TYPE varchar(3),
TOTAL int,
VOLUME int
);
INSERT INTO ATM_TRANSACTIONS
(ID,T_YEAR,T_TYPE,TOTAL,VOLUME)
VALUES
('DD1','2008','A',1000,10),
('DD1','2008','B',2000,20),
('DD1','2008','C',3000,30),
('DD1','2009','A',4000,40),
('DD1','2009','B',5000,50),
('DD1','2009','C',6000,60),
('DD2','2008','A',7000,70),
('DD2','2008','B',8000,80),
('DD2','2008','C',9000,90),
('DD2','2009','A',10000,100),
('DD2','2009','B',11000,110),
('DD2','2009','C',1200,120);
Kolumna T_Year
może się zmienić w przyszłości, ale kolumna jest ogólnie wiesz, więc nie jestem pewien, czy mogę użyć kombinacji funkcji PIVOT w SQL Server z dynamicznym kodem?
Próbowałem po przykład tutaj:
ale skończyło się z dziwnych rezultatów.
fantastyczne. Nie zdawałem sobie sprawy, że muszę rozpiąć/zastosować krzyż, a następnie przestawić. Dzięki wielkie. – Mkov
suppppppperrrrrrrrrrb –
To jest świetne. Trwające prace nad dynamicznymi kolumnami wymagają nieco więcej pracy, ale ogólny pomysł wciąż jest ważny. –