连本帖300分,求存储过程完整写法,oracle8i客户端。再不解决明天难看了!!谢过各位!
求一个如下的存储过程完整写法,连的是oracle8i数据库。注意:工程是可以随时增加的!!!!
一:现有表一,如下:
这里,人员基本是固定的,但是工程不固定,会每个月变化。
MEMNAME PROJECT MANHOUR (小时)
人员1 工程1 23
人1 工程2 10
人2 工程1 10
人3 工程2 15
人3 工程3 50
…… …… ……
要得到如下的表:按人group by,得出每个人在所有工程上一共花的时间总和
MEMNAME 工程一 工程2 工程3 工程4 ………… 工程N 合计时间
人员1 23 10 0 0 0 33
人员2 10 0 0 0 0 10
人员3 0 15 50 0 0 65
………………………………………………………………………………………………
我写了一个,但是错误百出,原来有人给写的:
drop table table1
go
create table TABLE1(memname varchar(10), PROJECT varchar(10),manhour int)
go
insert into table1 select '人员1','工程1',23
union all select '人1','工程2',10
union all select '人2','工程1',10
union all select '人3','工程2',15
union all select '人4','工程3',50
declare @sql varchar(8000)
set @sql = ' select memname'
select @sql = @sql + ',sum(case PROJECT when '''+PROJECT+''' then manhour else 0 end) ['+PROJECT+']'
from (select distinct PROJECT from table1 ) as a
select @sql = @sql+',sum(manhour) as 合计 from table1 group by memname'
exec(@sql)
希望大家帮忙!给一个完整的存储过程,解决我的难题!!!
另两个帖子的地址:
http://community.csdn.net/Expert/topic/3217/3217689.xml?temp=.5305292
http://community.csdn.net/Expert/topic/3221/3221454.xml?temp=.57008