update G set G_qncq=(select sum(isnull(G_scqts,0)) from Gz_total where empID=G.empID and sessionID between @nID-12 AND @nID-1)
from #tGz_Total G left join zlemployee E on G.empid=E.id
where datediff(month,lzdate,@dDate0)=0
改语句是考勤系统里面的算法,我看不太明白,请各问指点,G_qncq=全年总出勤 G_scqts=实际出勤天数,lzdate=离职日期下面三个字段具体是什么看不太明白@nID-12 , @nID-1,,@dDate0 。
from #tGz_Total G left join zlemployee E on G.empid=E.id
where datediff(month,lzdate,@dDate0)=0
改语句是考勤系统里面的算法,我看不太明白,请各问指点,G_qncq=全年总出勤 G_scqts=实际出勤天数,lzdate=离职日期下面三个字段具体是什么看不太明白@nID-12 , @nID-1,,@dDate0 。
set G_qncq=(select sum(isnull(G_scqts,0))
from Gz_total where empID=G.empID and sessionID between @nID-12 AND @nID-1)
from #tGz_Total G left join zlemployee E on G.empid=E.id
where datediff(month,lzdate,@dDate0)=0========
@nID-12 AND @nID-1这两个是临时变量,应该是你传进来的参数
datediff(month,lzdate,@dDate0) ---,@dDate0也是你传进来的参数,datediff函数参考联机文件
@dDate0 是你的程序里面的参数,你自己应该比较清楚。
这句话的意思是"
根据你传入的“日期”查询这个日期当月离职人员的总出勤.
(还有一条件 @nID-12 AND @nID-1)
因不知道你的@nID是什么意思 ,所以就不能给出正确的理解了
G_qncq(全年总出勤)=update G set G_qncq=(select sum(isnull(G_scqts,0)) from Gz_total where empID=G.empID and sessionID between @nID-12 AND @nID-1)
from #tGz_Total G left join zlemployee E on G.empid=E.id
where datediff(month,lzdate,@dDate0)=0我自己对G_qncq(全年总出勤)算出来的天数有疑问,感觉结果是不对的,所以想请教各位。我想了解G_qncq算出来的结果是什么。谢谢。
datediff(month,lzdate,@dDate0) ---,@dDate需要传入的是一个日期,类似2010-11-07
select sum(isnull(G_scqts,0))
from Gz_total where empID='张三的工号' and sessionID between @nID-12 AND @nID-1
and datediff(month,lzdate,@dDate0)=0