先找到未行列轉換的數據,分組查看數據試試:select CompanyName,PRoductName,COUNT(*)as num from dbo.Orders group by ProductName,CompanyName order by CompanyName
去看看我給你們的分頁存儲過程,看看拼接sql語句字符串和執行的過程,然后把思路打開一下試試
兩者結合起來,答案:
1 declare @sql varchar(8000)--聲明一個字符串變量2 set @sql='select CompanyName,'--開始設置語句3 --------動態生成語句begin(開始轉成列)-----4 select @sql=@sql+'sum(case when ProductName='''+ProductName+''' then num else 0 end)['+ProductName+'],' 5 from (select distinct top 100 percent ProductName from Orders order by ProductName)a6 --------動態生成語句 end--------------------7 set @sql =left(@sql,len(@sql)-1)+' from (select CompanyName,ProductName,COUNT(*)as numfrom dbo.Orders group by ProductName,CompanyName)a group by CompanyName'8 print @sql --打印輸出最終執行的SQL9 exec(@sql)--執行SQL字符串