国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

SQL行列轉換:報表_公司采購表_每個公司各采購了些什么產品

2024-07-21 02:48:29
字體:
來源:轉載
供稿:網友
SQL行列轉換:報表_公司采購表_每個公司各采購了些什么產品

有同學問了個比較典型行列轉換的問題,想想,解答如下:數據庫有一張表:

是個公司采購表,想轉化成如下報表,顯示每個公司各采購了些什么產品:

哪些公司采購哪些產品是不確定的,所以報表的列有哪幾項是不確定的,我想了很久也沒什么好方法,請問有辦法嗎?

解題思維步驟:

  1. 先找到未行列轉換的數據,分組查看數據試試:select CompanyName,PRoductName,COUNT(*)as num from dbo.Orders group by ProductName,CompanyName order by CompanyName
  2. 去看看我給你們的分頁存儲過程,看看拼接sql語句字符串和執行的過程,然后把思路打開一下試試
  3. 兩者結合起來,答案:
復制代碼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字符串
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 电白县| 镇康县| 黄山市| 深圳市| 荣成市| 龙里县| 雅安市| 梅河口市| 裕民县| 大丰市| 岗巴县| 舒城县| 枣阳市| 宝兴县| 长汀县| 广平县| 石河子市| 江口县| 青阳县| 梓潼县| 西乌珠穆沁旗| 工布江达县| 文山县| 皮山县| 凌源市| 桂林市| 礼泉县| 边坝县| 二手房| 抚远县| 西乌珠穆沁旗| 陈巴尔虎旗| 临沧市| 吉安市| 同江市| 巫溪县| 凤庆县| 泾阳县| 库车县| 瑞丽市| 彭阳县|