日期:2014-05-18  浏览次数:20641 次

求一sql写法
工作表:
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





------解决方案--------------------
没看懂结果,真没看懂
------解决方案--------------------
没明白意思
------解决方案--------------------
有点看懂了 不过不好搞啊
------解决方案--------------------
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