国产探花免费观看_亚洲丰满少妇自慰呻吟_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字符串
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 纳雍县| 临高县| 镇赉县| 四会市| 桐庐县| 宣恩县| 闻喜县| 庆元县| 桂林市| 察隅县| 岳池县| 竹山县| 清流县| 永德县| 隆昌县| 邛崃市| 寿光市| 湾仔区| 普兰县| 扬中市| 科技| 阳谷县| 留坝县| 建湖县| 宜宾县| 纳雍县| 沂南县| 肥东县| 宝清县| 江永县| 孝感市| 洪江市| 阿拉善右旗| 江安县| 洪湖市| 泾源县| 永和县| 堆龙德庆县| 淮安市| 隆子县| 六安市|