排班表:

每周存假表:

关系:
1.排班表里根据userid每周的holvalue和overvalue值的累加存到每周存假表里的holvalue字段。
2.现在怎么实现不带参数的存储过程自动计算出每周存假.(正常上班时间为5.5天),排班表里的holvalue值和overvalue值累加减去5.5得出的值就是每周的存假值 。
3.每周存假表中的enddate是每周星期日的日期。

------解决思路----------------------
update b set b.holvalue=a.holvalue
from 每周存假表 b,(select userid,datepart(week,rangedate) week,year(rangedate) yyyy,sum(holvalue+isnull(overvalue,0)) holvalue from 排班表 group by userid,datepart(week,rangedate),year(rangedate) ) a
where b.userid=a.userid
and year(b.enddate)=a.yyyy
and datepart(week,b.enddate)=a.week