求2个SQL语句,马上给分,谢谢

jeffwangxm 2006-01-19 11:42:29
我想做个工作效率分析

1 、 有一工作记录表,表内有字段 :姓名,开始工作时间,结束工作时间,工作量
每人一天内允许工作多次,每次工作时间不限,每次工作效率可不同。
现要统计每人的最快工作效率(按分钟)。
再按人统计每人所有工作的平均效率。求SQL语句

2、现用比较复杂的程序按人统计出平均工作效率表:姓名,总耗时,总工作量,平均工作效率
目测平均工作效率在0---2500之间
求SQL语句,按0-100,100-200,200-300......工作效率统计每个工作效率段内的人数

马上给分


...全文
114 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
白发程序猿 2006-01-19
  • 打赏
  • 举报
回复
写错了,应该是
1、select 姓名,max(工作量/datediff(n,开始工作时间,结束工作时间)) as 最快效率 from 工作记录表 group by 姓名
select 姓名,sum(工作量)/sum(工作时间) as 平均效率 from (select 姓名,工作量,datediff(n,开始工作时间,结束工作时间)) as 工作时间 from 工作记录表) t group by 姓名
2、
select 平均效率,count(人数) as 人数 from
(select case when 平均效率 between 0 and 100 then '0-100' when 平均效率 between 100 and 200 then '100-200' when 平均效率 between 200 and 300 then '200-300' when 平均效率 between 300 and 400 then '300-400' else '400以上' end as 平均效率,'1' as 人数 from
(select 姓名,sum(工作时间) as 总耗时,sum(工作量) as 总工作量,sum(工作量)/sum(工作时间) as 平均效率 from
(select 姓名,工作量,datediff(n,开始工作时间,结束工作时间)) as 工作时间 from 工作记录表) t group by 姓名) t1) t2
group by 平均效率
我这里只写到400,如还要多,就依序增加就行了
白发程序猿 2006-01-19
  • 打赏
  • 举报
回复
1、select 姓名,min(工作量/datediff(n,开始工作时间,结束工作时间)) as 最快效率 from 工作记录表 group by 姓名
select 姓名,sum(工作量)/sum(工作时间) as 平均效率 from (select 姓名,工作量,datediff(n,开始工作时间,结束工作时间)) as 工作时间 from 工作记录表) t group by 姓名
2、
select 平均效率,count(人数) as 人数 from
(select case when 平均效率 between 0 and 100 then '0-100' when 平均效率 between 100 and 200 then '100-200' when 平均效率 between 200 and 300 then '200-300' when 平均效率 between 300 and 400 then '300-400' else '400以上' end as 平均效率,'1' as 人数 from
(select 姓名,sum(工作时间) as 总耗时,sum(工作量) as 总工作量,sum(工作量)/sum(工作时间) as 平均效率 from
(select 姓名,工作量,datediff(n,开始工作时间,结束工作时间)) as 工作时间 from 工作记录表) t group by 姓名) t1) t2
group by 平均效率
我这里只写到400,如还要多,就依序增加就行了
-狙击手- 2006-01-19
  • 打赏
  • 举报
回复
select 姓名,
sum(datediff(mi,开始工作时间,结束工作时间)) as sumtime,
sum(工作量) as sumwork,
avg(sum(datediff(mi,开始工作时间,结束工作时间))/sum(工作量)) as avgwork
into #tmp
from 工作记录表
group by 姓名
select
[0-100]=(select sum(case when avgwork between 0 and 100 then 1 end) from #temp),
[100-200]=...
....
from #tmp
jeffwangxm 2006-01-19
  • 打赏
  • 举报
回复
工作记录表,:姓名(char型),开始工作时间(datetime),结束工作时间(datetime),工作量(int)

平均工作效率表:姓名(char型),总耗时(datetime),总工作量(int),平均工作效率(int)
$扫地僧$ 2006-01-19
  • 打赏
  • 举报
回复
sorry:
1.
select 姓名,max(工作量/datediff(mi,开始工作时间,结束工作时间)),avg(工作量/datediff(mi,开始工作时间,结束工作时间)) from 工作记录表
group by 姓名
$扫地僧$ 2006-01-19
  • 打赏
  • 举报
回复
1.
select 姓名,max(工作量/datediff(mm,开始工作时间,结束工作时间)),avg(工作量/datediff(mm,开始工作时间,结束工作时间)) from 工作记录表
group by 姓名
天地客人 2006-01-19
  • 打赏
  • 举报
回复
请列出数据类型!!!


=========================================================
我的回复,尽可能为你分忧解难
BLOG:blog.csdn.net/softj --欢迎光临,有更多信息等着你!
QQ高级群:5063844专研数据库 --大家进来聊一聊!
MSN:softj@msn.com --这不常用!
Mail:zj.wj@163.com --有什么问题可以和我来EMAIL!
=========================================================
yangyangxie 2006-01-19
  • 打赏
  • 举报
回复
study
flyeq008 2006-01-19
  • 打赏
  • 举报
回复
学习

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧