mysql複雜動態行轉列解決方案

2021-08-30 23:09:36 字數 835 閱讀 2775

這段時間要弄財務報表,遇到了乙個動態行轉列的問題,資料庫用的是mysql的。感覺mysql實現動態行轉列比mssql複雜多了。網上的都是處理的乙個表(比較簡單),而我要處理的資料來自於多個表,對於行轉列的行也要進行一定的過濾處理,最後在自己的努力下,總算出來啦,附件是完整**。這兩個儲存過程都是帶輸入引數的,乙個對要轉的行有處理,乙個沒有處理,兩個例子,都放出來,希望可以給遇到同樣問題的朋友一些幫助。**有不足的地方,歡迎指證。

(所有**都是我在專案中用的,沒有bug.)

php頁面呼叫該儲存過程的**如下:

//解決不能返回結果集的問題

define('client_multi_results', 131072);

$db = mysql_connect("localhost","root", "123456",1,client_multi_results) or die("could not connect: ".mysql_error());

//$startdate  $enddate是表示時間段的兩個變數

mysql_select_db("project",$db) or die("could not select database");

$result = mysql_query("call sp_financialreport_withvar($startdate,$enddate)") or die("query failed:" .mysql_error());

$rows=mysql_num_rows($result);

while($arr = mysql_fetch_assoc($result))

mysql_free_result($result);

mysql 動態行轉列 MySQL行轉列

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

MySql動態行轉列

靜態行轉列簡單一點。動態行轉列就需要涉及到儲存過程。需要統計每個班下了多少套秋裝和冬裝,但由於有的學校可能還下了夏裝,每個學校下的款式不一樣,所以這個列是動態的 所以建乙個檢視 如圖 需要把這個行轉為列 如下儲存函式 begin set sql null set ssq null select gr...

動態行轉列

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