请教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 里 增加一个字段:参加该工程的人数,这样可以完成。
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
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28