|
--1\统计2016年所有员工每个月,每年的加班.要求是把每个月jbgs总计大于36的员工gh,以及月份输出来
select gh,convert(char(7),rq,111) YF,SUM(zbs) zbs,sum(jbgs) jbgs
--into GZB_MONTH
FROM GZMXB WHERE YEAR(rq)='2016'
group by gh,convert(char(7),rq,111)
having sum(jbgs) > 36
--2\把2016年jbgs总时超过(36*12)432的员工的gh输出来.
select gh,YEAR(rq) NF,SUM(zbs) zbs,sum(jbgs) jbgs
--into GZB_YEAR
FROM GZMXB WHERE YEAR(rq)='2016'
group by gh,YEAR(rq)
having sum(jbgs) > 432
--3\用2的结果和另外一张表(gzb)中的zgs.jbs比较.把不同的员工的GH.以及当月的月份输出来.
SELECT A.gh,B.gh,A.YF,B.YF,A.zbs,B.zbs,A.jbgs,B.jbgs
FROM GZB_MONTH A FULL JOIN gzb B ON A.gh=B.gh and A.YF=B.YF
WHERE A.zbs<>B.zbs OR A.jbgs<>B.jbgs
前两个都已经搞定了.第三个似乎有点问题.再帮帮我.谢谢
两张表:gzgl_gzb kqgl_Gs
kqgl_gs这张表里面有两列 zbgs jbgs记录所有人每个人每个月每天的工时和加班工时.
gzgl_gzb这张表里面的 zbs jbs 是对就的员工当月所有工进和加班时.就是zbs=每天的zbgs之和.jbs=每天的jbgs之和.本来第二张表里面的这两列是这样算来的.但是中间有手动改了一些数据.所以现在我想做的就是把结果不一样的.也就是改过的输出来.同样也要月份.工号.改前的数据.改后的数据.
|
|