SQL查詢結果為二維表


 1 ---測試數據---
 2 if object_id('[tb]') is not null drop table [tb]
 3 go
 4 create table [tb]([code] varchar(6),[Month] int,[Num] int)
 5 insert [tb]
 6 select 'C00001',200401,3 union all
 7 select 'C00001',200402,1 union all
 8 select 'C00001',200403,1 union all
 9 select 'C00001',200404,3 union all
10 select 'C00001',200405,3 union all
11 select 'C00001',200604,1 union all
12 select 'C00002',200401,3 union all
13 select 'C00002',200402,2 union all
14 select 'C00002',200404,1 union all
15 select 'C00002',200405,1 union all
16 select 'C9999',200401,5 union all
17 select 'C9999',200402,2 union all
18 select 'C9999',200403,2
19 go
20 
21 ---查詢---
22 declare @sql varchar(8000)
23 select 
24   @sql=isnull(@sql+',','')
25   +'sum(case when [month]='+ltrim([month])+' then num else 0 end) as ['+ltrim([month])+']'
26 from
27 (select distinct [month] from tb) t
28 
29 exec ('select code,'+@sql+' from tb group by code')
30 
31 ---結果---
32 code   200401      200402      200403      200404      200405      200604
33 ------ ----------- ----------- ----------- ----------- ----------- -----------
34 C00001 3           1           1           3           3           1
35 C00002 3           2           0           1           1           0
36 C9999  5           2           2           0           0           0
37 
38 (3 行受影響)

原文自:https://bbs.csdn.net/topics/350043942


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM