国产探花免费观看_亚洲丰满少妇自慰呻吟_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字符串
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 禄劝| 马关县| 阳泉市| 五台县| 唐海县| 泸水县| 雅安市| 竹溪县| 延长县| 礼泉县| 皮山县| 浙江省| 应用必备| 鸡东县| 雷波县| 饶河县| 甘肃省| 碌曲县| 卢龙县| 合川市| 多伦县| 苗栗县| 瓦房店市| 高陵县| 林西县| 桂东县| 南雄市| 双城市| 平湖市| 鲁甸县| 马鞍山市| 辽宁省| 海宁市| 广元市| 军事| 青龙| 改则县| 饶阳县| 阿勒泰市| 乌拉特前旗| 搜索|