我有一個SQL查詢這在DB2工作正常 我的結果是SQL如何將ROWS轉換爲COLUMNS和COLUMNS TO ROWS? DB2
SERVICE IN OUT INPROGRESS
ADSL 1 5 10
VOIP 15 12 11
IPTV 20 14 17
現在我想改變它是這樣的:
CLASS ADSL VOIP IPTV
IN 1 5 10
OUT 15 12 11
INPROGRESS 20 14 17
雖然看起來長我的SQL是非常簡單但我從來沒有改變過這一點。如果有人知道我會感激。
我的SQL是
select distinct 'ADSL' as SERVICE,
(select count(*) as In from ticket
where
(class='C1' and
(servicesinfault='25'))),
(select count(*) as Out from ticket
where
(class='C2' and
(servicesinfault='25'))),
(select count(*) as In_progress from ticket
where
(class='C3' and
(servicesinfault='25')))
from ticket where servicesinfault = '25'
union all
select distinct 'VoIP',
(select count(*) from ticket
where
(class='C1' and
(servicesinfault='26'))),
(select count(*) from ticket
where
(class='C2' and
(servicesinfault='26'))),
(select count(*) from ticket
where
(class='C3' and
(servicesinfault='26')))
from ticket where servicesinfault = '26'
union all
select distinct 'IPTV',
(select count(*) from ticket
where
(class='C1' and
(ticket.servicesinfault='27'))),
(select count(*) from ticket
where
(class='C2' and
(servicesinfault='27'))),
(select count(*) from ticket
where
(class='C3' and
(servicesinfault='27')))
from ticket where servicesinfault = '27'
哪個RBDMS(SQL-Server,Oracle,Mysql等)?對於大多數人來說,這個問題有很多重複。 – Bridge
我正在使用IBM DB2 – Dejan
我不知道DB2 Pivot等價物,我建議採用下面Ben的答案中的鏈接建議的方法。 – Bridge