現有如下表:

需要得到如下表:

各個科目不是固定的,比如有語文,數學,英語,美術等等
uj5u.com熱心網友回復:
選擇出科目,生成動態SQL再exec得到結果uj5u.com熱心網友回復:
大師,具體怎么寫呢,寫了半天寫不出來
uj5u.com熱心網友回復:
怎么生成動態SQL呢uj5u.com熱心網友回復:
SELECT * FROM [資料源]
AS P
PIVOT
(
SUM([成績]) FOR
p.[科目]IN ([語文],[數學],[英語])
) AS T
uj5u.com熱心網友回復:
[語文],[數學],[英語] 這些是不固定的,需要動態生成的
uj5u.com熱心網友回復:
[語文],[數學],[英語] 這些是不固定的,需要動態生成的uj5u.com熱心網友回復:
if(OBJECT_ID('tempdb..#test1')is not null) drop table #test1
select * into #test1 from (select '3.5' clas,'t1' name,'v1' project,100 results union all
select '3.5' clas,'t2' name,'v1' project,090 results union all
select '3.5' clas,'t3' name,'v2' project,080 results union all
select '3.6' clas,'t4' name,'v1' project,070 results union all
select '3.6' clas,'t5' name,'v3' project,060 results union all
select '3.6' clas,'t6' name,'v2' project,050 results)as a
select * from #test1
declare @sql1 nvarchar(max);
select @sql1=(select STUFF((SELECT distinct ','+project FROM #test1 FOR XML PATH('')),1,1,''))
select @sql1='Select * from (select clas,project,results from #test1) as a pivot(sum(results) for a.project in ('+@sql1+'))as B'
exec(@sql1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/44588.html
標籤:應用實例
下一篇:求教一個非常詭異問題
