+ -
当前位置:首页 → 问答吧 → 求一sql写法

求一sql写法

时间:2011-12-19

来源:互联网

工作表:
work_id count name
1 1 wang
1 1 zhu
2 1 zhu
6 2 xxxxx
7 1 gggg
操作工表:

id name teamid
1 wang 1
2 zhu 1
3 tt 1
4 xxxxx 2
5 gggg 2

现在要求对2个班组的工作量(teamid为1跟2)进行统计(对于工作表),操作工tt属于班组1,虽然在工作量中没有数据,但实际最后统计结果要求跟wang与zhu 3人平分工作量,形成以下结果;

work_id count name
1 0.67 wang
1 0.67 zhu
1 0.67 tt
2 0.33 wang
2 0.33 zhu
2 0.33 tt
6 1 xxxxx
6 1 gggg
7 0.5 xxxxx
7 0.5 gggg



作者: czwily   发布时间: 2011-12-19

没看懂结果,真没看懂

作者: ssp2009   发布时间: 2011-12-19

比如0.67
wang zhu tt 都属于工作组1,wang 与zhu在工序1中均有count为1的工作量,(1+1)/3就是0.67 其他原理一样

作者: czwily   发布时间: 2011-12-19

没明白意思

作者: szstephenzhou   发布时间: 2011-12-19

有点看懂了 不过不好搞啊

作者: fredrickhu   发布时间: 2011-12-19

作者: szstephenzhou   发布时间: 2011-12-19

SQL code


试试好用不?

--工作表 WorkInfo
--操作工表 TeamInfo

--第一步,计算小组操作工汇总。
with @temptb1 as (select teamid, count(id) as cnt from TeamInfo group by teamid )
--第二步,计算每份工作的任务量汇总
with @temptb2 as (select work_id, count([count]) as wcnt from WorkInfo  group by teamid )
--第三步,结果。
select c.work_id, c.wcnt/b.cnt, a.name
from teamid a
inner join @temptb1 b on a.teamid = b.teamid
inner join @temptb2 c on 1 = 1



作者: zhangxf925   发布时间: 2011-12-19