dglqcpic 发表于 2008-06-08 21:42

如何用SQL转置表格

现在如下的清单

姓名        险种类型        缴费工资        划入帐户金额        划入统筹金额        个人缴费金额        划入帐户利息        划入统筹利息        个人缴费利息        滞纳金
陈浩生        住院补充医疗        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

dglqcpic 发表于 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

ivhb 发表于 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

waikontheroad 发表于 2008-06-12 14:57

偶也和想知道。。。
页: [1]
查看完整版本: 如何用SQL转置表格