這段時間要弄財務報表,遇到了乙個動態行轉列的問題,資料庫用的是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...