SQL行轉列並分類彙總

2021-05-24 04:45:01 字數 1305 閱讀 6950

create table #temp (employeename nchar(10),paycategory nchar(12),amount numeric(10,2))

insert into #temp (employeename,paycategory,amount) values ('王五','吃飯',10.2)

insert into #temp (employeename,paycategory,amount) values ('王五','洗頭',25)

insert into #temp (employeename,paycategory,amount) values ('王五','座車',2)

insert into #temp (employeename,paycategory,amount) values ('王五','住店',200)

insert into #temp (employeename,paycategory,amount) values ('張三','吃飯',20)

insert into #temp (employeename,paycategory,amount) values ('張三','洗頭',50)

insert into #temp (employeename,paycategory,amount) values ('張三','座車',9)

insert into #temp (employeename,paycategory,amount) values ('張三','住店',300)

insert into #temp (employeename,paycategory,amount) values ('張三','住店',500)

select employeename,[吃飯] as "吃",[洗頭] as "洗",[座車] as "車",[住店] as "住" from #temp  pivot(sum(amount) for paycategory in ([吃飯],[洗頭],[座車],[住店])) as pvt

drop table #temp

結果:employeename 吃                洗                車                住                

王五           10.2             25               2                200              

張三           20               50               9                800              

(9 行受影響)

(返回 2 行)

sql 行轉列問題

題目 下表tproduct某產品在各城市各月銷量情況 city name month no 月 qut qty 臺 杭州 9 100 杭州 10 120 上海 9 130 上海 10 140 請寫sql實現 如下查詢 city 9月銷量 10月銷量 杭州 100 120 上海 130 140 答案一...

SQL 行轉列總結

行轉列應該使用case 想要把某個行轉成列的列名 when 裡將各個列的值放進去 then 分組後某個值要進行彙總行 else 0 end 動態生成的話,將想要用的轉的,用selec查出來拼成以上格式就可以了 declare sql varchar 8000 如果大於8000只能用程式去拼乙個sql...

SQL行轉列例項

sql行轉列是比較經典的問題 比如有如下資料表,有如下某一款號 表1 顏色 尺碼 庫存 紅色 s 10 紅色 m 80 白色 l 50 白色 s 60 要將上面的表轉化為如下格式 表2 顏色 s m l 紅色 10 80 0 白色 60 0 50 動態sql create table tbl 0 c...