MySql動態行轉列

2021-09-29 19:16:09 字數 919 閱讀 2781

靜態行轉列簡單一點。動態行轉列就需要涉及到儲存過程。

需要統計每個班下了多少套秋裝和冬裝,但由於有的學校可能還下了夏裝,每個學校下的款式不一樣,所以這個列是動態的

所以建乙個檢視

如圖:

需要把這個行轉為列

如下儲存函式

begin

set @sql = null;

set @ssq = null;

select

group_concat(distinct concat('sum(if(sx.sku_id = \'',

sx.sku_id,

'\', sx.num, 0)) as \'',

sx.sku_name,

'\' '))

into @sql from

forskuview sx where sx.main_id=order_id;

set @ssq= concat(' select sx.gradename as "年級",sx.classname as "班級",',@sql,' from forskuview sx where sx.main_id=\'',order_id,'\' group by sx.gradename,sx.classname order by (sx.gradeid+0),(sx.classname+0)');

prepare stmt from @ssq;

execute stmt;

deallocate prepare stmt;

end

執行結果

mysql 動態行轉列 MySQL行轉列

比如乙個單子,多個收據單用逗號隔開,怎麼把這乙個單子所有收據單獨展示出來,行轉成列呢?方法一 這裡需要用到迴圈,首先建立乙個1 10的序列 select rownum rownum 1 as seq from select rownum 0 r,bills limit 0,10 其次依次運用 sub...

動態行轉列

因狗血的報表展現需求 需要根據每天的新增使用者數量 選取前5個渠道.然後把該渠道當月每一天的新增使用者資料繪製在圖表上 x軸是 日期 y軸是新增使用者數量 畫5條線.這5條線是動態的,每天不同的線條.資料經過後台統計後形成表 statedate,channle id,channle name,new...

動態行轉列

drop table test create table test name varchar 12 scores int insert into test select 周杰倫 230 union select 周星馳 100 union select 成龍 150 union select 李連杰...