+ -
当前位置:首页 → 问答吧 → 请教SQL写法:

请教SQL写法:

时间:2011-11-05

来源:互联网

问个SQL语句:
1 table1:存储工程ID(jobID)和工程量JobWorking :
Job001 100.00
Job002 150.00
Job003 90.00


table2:存放每个工程都有哪些人完成,字段是JobID和人名name
Job001 赵
Job001 钱
Job002 钱
Job002 孙
Job002 李
Job003 赵
job003 孙
job003 李

2.每个工程由参加的人平均分配计算工作量,即赵和钱在Job001上的工作量都是50。但每个工程参加的人的数量不定,所以才有table2这样的设计

3.现在想统计每个人的工作量,即得到这样的表示:
赵 80
钱 100
孙 80
李 80

或者明细的表示
赵 job001 50
赵 job003 30
.。。。

用一条SQL可以完成吗? 想了半天想不出,只能想到在 table 里 增加一个字段:参加该工程的人数,这样可以完成。

作者: tupelo   发布时间: 2011-11-05

SQL code
select 
c.Name,
sum(a.JobWorking/b.con)as JobWorking
from table1 as a
inner join (select JobID,count(1) as con from table2 group by JobID) as b on a.Jobid=b.JobID
inner join table2 as c on c.JobID=a.JobID
group by c.Name


--  明细
select 
c.Name,c.JobID
a.JobWorking/b.con
from table1 as a
inner join (select JobID,count(1) as con from table2 group by JobID) as b on a.Jobid=b.JobID
inner join table2 as c on c.JobID=a.JobID

作者: roy_88   发布时间: 2011-11-05