免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3598 | 回复: 3
打印 上一主题 下一主题

如何用SQL转置表格 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-06-08 21:42 |只看该作者 |倒序浏览
现在如下的清单

姓名        险种类型        缴费工资        划入帐户金额        划入统筹金额        个人缴费金额        划入帐户利息        划入统筹利息        个人缴费利息        滞纳金
陈浩生        住院补充医疗        1560        0        15.6        0        0        0        0        0
陈浩生        综合基本医疗        1560        31.2        70.2        31.2        0        0        0        0
陈浩生        生育        2350        0        11.75        0        0        0        0        0
陈浩生        企业养老        1560        0        124.8        124.8        0        0        0        0
陈浩生        工伤        1560        0        7.8        0        0        0        0        0
陈浩生        失业        1560        0        7.8        0        0        0        0        0
陈浩生        企业养老        1560        0        124.8        124.8        0        0        0        0
陈浩生        地方养老        1560        46.8        0        0        0        0        0        0
陈浩生        工伤        1560        0        7.8        0        0        0        0        0
陈浩生        生育        2600        0        13        0        0        0        0        0
陈浩生        失业        1560        0        7.8        0        0        0        0        0
陈浩生        综合基本医疗        1560        31.2        70.2        31.2        0        0        0        0
陈浩生        住院补充医疗        1560        0        15.6        0        0        0        0        0
陈浩生        地方养老        1560        46.8        0        0        0        0        0        0

论坛徽章:
0
2 [报告]
发表于 2008-06-08 21:44 |只看该作者
需要转置成如下格式,用SQL怎么写?
姓名        养老工资        养老个人        养老单位        失业工资        失业个人        失业单位        工伤工资        工伤个人        工伤单位        生育工资        生育个人        生育单位        医疗工资        医疗个人        综合基本医疗单位        住院补充医疗单位        个人小计
陈浩生        3120        249.6        343.2        3120        0        15.6        3120        0        15.6        4950        0        24.75        3120        62.4        202.8        31.2        312

论坛徽章:
0
3 [报告]
发表于 2008-06-09 03:16 |只看该作者
使用decode,或者case when 。。。 end case
这个语法,很轻松就做到了

select
"姓名",
sum (case when "险种" = '...' then ... end case) as "养老工资",
sum (case when .....) as "养老个人",
....
from your-table
group by 1

论坛徽章:
0
4 [报告]
发表于 2008-06-12 14:57 |只看该作者
偶也和想知道。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP