这段时间要弄财务报表,遇到了一个动态行转列的问题,数据库用的是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))
{
print_r("fetch data success");
}
mysql_free_result($result);