这段时间要弄财务报表,遇到了一个动态行转列的问题,数据库用的是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);
分享到:
相关推荐
在MySQL中,存储过程是一种预编译的SQL代码集合,它可以接受输入参数,执行一系列复杂的数据库操作,并返回结果。...因此,在实际应用中,应充分考虑是否真的需要动态创建列,以及这种做法是否为最佳解决方案。
在MySQL中,存储过程是一...总之,动态行转列在MySQL存储过程中通过巧妙地使用SQL函数和子查询来实现,虽然不如某些支持`PIVOT`操作的数据库系统直观,但它仍然是一个实用的解决方案,尤其对于需要灵活展示数据的场景。
### MySQL的开源DW解决方案 #### 开源数据仓库的优势 开源数据仓库因其显著的成本优势和灵活性,在数据处理领域受到越来越多的关注。根据所提供的文档摘要,我们可以详细探讨开源数据仓库的主要优势: 1. **成本...
本篇将聚焦于MySQL的全文模糊查找及其便捷解决方案,并结合PHP的Unicode工具类进行讨论。 MySQL的全文索引和搜索功能允许我们快速高效地执行复杂的模糊查找。全文索引不同于普通的索引,它能够理解自然语言,提供更...
本示例“基于Mysql的表转HBase小Demo”提供了一个简单的解决方案,将Mysql中的数据转换并存储到HBase这种分布式列式数据库中。这个过程对于那些希望从传统的关系型数据库迁移到NoSQL数据库,尤其是对大规模数据进行...
3. **阅读说明**:`shp2mysqlReadme.txt`文件应包含工具的使用指南,包括如何安装、配置和运行程序,以及可能遇到的问题和解决方案。 4. **源代码**:`src`目录可能包含了转换工具的源代码,这对于开发者来说非常...
在Windows环境下,MySQL数据仓库解决方案通常涉及到高效的数据存储、处理和分析。Infobright是一款开源的MySQL数据仓库引擎,特别针对大数据分析进行了优化。本文将深入探讨Infobright的核心特性,以及如何在Windows...
考虑到修改 DataX 源码的难度和复杂性,本次采取了一种更为简单的解决方案:通过调整 Hive 中的参数配置来间接解决问题。具体来说,减小 `hive.merge.smallfiles.avgsize` 的值,使生成的文件块大小均不超过 256M。 ...
工具应有错误处理机制,能在出现问题时停止迁移并提供解决方案。 6. 用户和权限管理:迁移不仅包括数据,还涉及到用户和权限设置。工具应能复制源数据库的用户账户和权限设置到目标数据库。 7. 自定义映射:在某些...
"Firebird和MySQL互相迁移工具"正是这样一个解决方案,它允许用户在两个数据库系统之间无缝地转移数据。这个工具可能包含了一系列功能,如数据的导入导出、表结构的同步以及触发器和存储过程的转换等。...
唯一的解决方案是从升级前的备份中恢复数据。 #### 平台支持 MySQL 的平台支持会随时间发展而变化,请参考 MySQL 官网(https://www.mysql.com/support/supportedplatforms/database.html)获取最新支持的平台列表...
在MySQL数据库中,有时我们需要计算数据表中相邻两行记录某个特定列...在更现代的MySQL版本(如8.0及以上)中,窗口函数的引入使得这类操作更加简洁,不过对于旧版本的MySQL,以上所述的方法仍然是一个有效的解决方案。
7. **组复制**:MySQL 5.7引入了Group Replication,这是一种高可用性和灾难恢复解决方案,允许多个MySQL实例同步复制,确保数据一致性。 8. **通用表表达式(Common Table Expressions, CTEs)**:提供了一种编写...
- **广泛的社区支持**:MySQL拥有庞大的开发者社区和丰富的资源库,这意味着用户可以获得大量的技术支持和解决方案,这在遇到技术难题时尤为重要。 #### 技术优势 - **性能与可靠性**:MySQL因其出色的性能和可靠性...
如果在使用MySQL过程中遇到问题,教程中提到的MySQL论坛是一个很好的资源,可以在那里与其他用户讨论并找到解决方案。 9. **版本信息** 本教程基于MySQL 8.0,这意味着它反映了该版本的新特性和改进。随着MySQL的...
无论是开发、测试还是生产环境,MySQL 8.0.28都能提供高效、可靠且功能丰富的数据库解决方案。在实际应用中,应根据需求选择合适的操作系统版本,并确保定期更新以获取最新的安全补丁和功能改进。