标题:[紧急求助]英雄们救偶,SQL问题请教
只看楼主
风雪行
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2005-6-23
 问题点数:0 回复次数:6 
[紧急求助]英雄们救偶,SQL问题请教
请大家帮忙!
sql server 2k中有一数据表,字段:
部门,人员,编号,月份,工资
里面有历月工资数据
想要将此纵向表数据转出另一横向数据表,即字段为:
部门,人员,编号,月份1,月份2..
说明:月份1-12为原表中所存在的月份,其数据值分别为原表中对应月份的工资字段的值!
十万火急,请各位侠锅英雄们救俺,谢谢!
搜索更多相关主题的帖子: SQL 英雄 
2006-05-24 10:45
风雪行
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2005-6-23
得分:0 

英雄们表回贴了!
自学成才偶已找到解决方案啦,呵!


2006-05-24 11:13
jokey
Rank: 1
等 级:新手上路
威 望:1
帖 子:108
专家分:0
注 册:2006-5-23
得分:0 
看上去好象没那么简单也,真强,(2006-5-24 10:45:00----2006-5-24 11:13:00),这么短的时间就想出来了,我把问题先收集,以后再拿出来做。

猪猪最可爱了,我选择我猪猪.
2006-05-24 21:09
lrvinghu
Rank: 2
等 级:新手上路
威 望:4
帖 子:171
专家分:0
注 册:2006-4-12
得分:0 
select 部门,人员,编号,月份1=sum(case 月份 when '月份1' then 工资 else 0 end),月份2=sum(case 月份 when 月份2 then 工资 else 0 end),...,月份12=sum(case 月份 when 月份12 then 工资 else 0 end) from tablename group by 编号
不知道可不可以

2006-05-25 10:50
jokey
Rank: 1
等 级:新手上路
威 望:1
帖 子:108
专家分:0
注 册:2006-5-23
得分:0 
上面的方法好象行不通。

猪猪最可爱了,我选择我猪猪.
2006-05-25 16:48
lrvinghu
Rank: 2
等 级:新手上路
威 望:4
帖 子:171
专家分:0
注 册:2006-4-12
得分:0 
以下是引用jokey在2006-5-25 16:48:00的发言:
上面的方法好象行不通。

说的对,需要改一下:

select 部门,人员,编号,月份1=sum(case 月份 when '月份1' then 工资 else 0 end),月份2=sum(case 月份 when '月份2' then 工资 else 0 end),...,月份12=sum(case 月份 when '月份12' then 工资 else 0 end) from tablename group by 部门,人员,编号
这样应该没问题了,已经测试通过了,你试试看吧

[此贴子已经被作者于2006-5-26 10:03:47编辑过]


2006-05-26 10:02
jokey
Rank: 1
等 级:新手上路
威 望:1
帖 子:108
专家分:0
注 册:2006-5-23
得分:0 

通过以上思路可以通过,我也测试没错。测试如下:
表:table1
id char(10)
month1 char(10)
gongzi char(10)

select * from table1
id month1 gongzi
01 1 500
01 2 870
01 3 898
02 1 800
02 2 254

select [id],月份1=sum(case month1 when '1' then gongzi else 0 end),月份2=sum(case month1 when '2' then gongzi else 0 end),月份3=sum(case month1 when '3' then gongzi else 0 end) from table1 group by [id]

id 月份1 月份2 月份3
01 500 870 898
02 800 254 0


不过我还没理解透这select语句,lrvinghu能不能解释一下呢?使用sum和group by 是怎么个想法。收藏。


猪猪最可爱了,我选择我猪猪.
2006-05-26 18:40



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-66698-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029548 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved