工作表:
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

解决方案 »

  1.   

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

  2.   

    试试好用不?--工作表 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