当前位置:编程学习 > JAVA >>

用MYSQL行转列。

如题用MYSQL将这两个表行转列,要求变成如下一个表
员工ID    开始日期    结束日期    基本工资   职务津贴  工龄津贴   绩效奖
10001     2010-10-1   2010-10-31   1100       2200
用存储过程也可以,用一条SQL也可以,前提就是不要写死了。如下是两个表。   

薪资结构项目表  
项目ID, 项目名称, 项目类型
1       基本工资   数值型 
2       职务津贴   数值型
3       工龄津贴   数值型 
4       绩效奖     数值型 

员工薪资表
员工ID 开始日期, 结束日期, 项目ID, 项目值
10001 2010-10-1 2010-10-31 1        1100
10001 2010-10-1 2010-10-31 2        2200

--------------------编程问答-------------------- http://www.zendlab.com/2010/08/mysql%E4%B8%80%E6%9D%A1sql%E8%AF%AD%E5%8F%A5%E8%A1%8C%E8%BD%AC%E5%88%97%E5%AE%8C%E6%88%90%E6%95%B0%E6%8D%AE%E7%BB%9F%E8%AE%A1/ --------------------编程问答--------------------
引用楼主 mmfaceone 的回复:
如题用MYSQL将这两个表行转列,要求变成如下一个表
员工ID 开始日期 结束日期 基本工资 职务津贴 工龄津贴 绩效奖
10001 2010-10-1 2010-10-31 1100 2200
用存储过程也可以,用一条SQL也可以,前提就是不要写死了。如下是两个表。  

薪资结构项目表  
项目ID, 项目名称, 项目类型
1 基本工资 数值型 
2 职务津贴 数值型
3 工……

基本思路:
设:员工薪资表为a,薪资结构项目表为b
select a.员工ID as 员工ID, a.开始日期 as 开始日期,a.结束日期 as 结束日期,b.基本工资 as 基本工资,b.职务津贴 as 职务津贴,b.工龄津贴 as 工龄津贴,b.绩效奖 as 绩效奖
from a,b
where a.项目ID=b.项目ID

--------------------编程问答-------------------- 你百度下 我记得以前有人发过这种帖子 其中mysql的行转列是用递归写的 是亮点~
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,