我有一個如下所示的結果集。誰能告訴我如何「轉動」這一點,所以SQL Server 2012透視計算數據類型?
datadate , timestart , timeend , datatype , datacount , datasum
2013-06-03 , 20:00:00.0000000 , 21:00:00.0000000 , 10 , 3 , 30
2013-06-03 , 20:00:00.0000000 , 21:00:00.0000000 , 20 , 3 , 30
2013-06-03 , 20:00:00.0000000 , 21:00:00.0000000 , 30 , 3 , 30
2013-06-03 , 19:00:00.0000000 , 20:00:00.0000000 , 10 , 2 , 20
可以變成這個
date , timestart timeend , type10count , type10sum , type20count , type20sum , type30count , type30sum
2013-06-03 , 20:00:00.0000000 , 21:00:00.0000000 , 3 , 30 , 3 , 30 , 3 , 30
2013-06-03 , 19:00:00.0000000 , 20:00:00.0000000 , 2 , 20 , 0 , 0 , 0 , 0
我試圖讓樞軸,以避免CASE語句和重新定義一個新表,但我來了短小。 這應該怎麼做?
declare @starttable table
(
datadate date , timestart time , timeend time , datatype tinyint , datacount int , datasum int
)
insert into @starttable
select '2013-06-03' , '20:00:00' , '21:00:00' , 10 , 3 , 30
union all
select '2013-06-03' , '20:00:00' , '21:00:00' , 20 , 3 , 30
union all
select '2013-06-03' , '20:00:00' , '21:00:00' , 30 , 3 , 30
union all
select '2013-06-03' , '19:00:00' , '20:00:00' , 10 , 2 , 20
select datadate , timestart , timeend
from (select datadate , timestart , timeend , datacount ,datasum from @starttable) as t1
pivot (sum(datasum) for datatype in (datacount,datasum)) as t2
-- yes i know sql server gongs this
我需要一種方法來給出這個答案以及前一個答案的答案複選標記。在兩個回覆中,我在過去12小時內學到了很多。謝謝! – Snowy