一个说起来挺简单但是越快越头疼的一个项目,求懂的大神教一下,可能字数有些多。但是还是希望有大大求教一下!
求一个部门首先我要用总表里也就是hrs110ma里把部门人数提取出来,通过部门对应上级部门表也就是hrs009m3。通过表关联外加一些部门所属条件从而获得部门具体人数和信息,也就是下列语句
PS:hrs110ma人员信息总表
hrs009m3部门对应上级部门表
hrs390t0员工月度考勤总档(查询2个假别,salaryid为3032上月存休和3033上月特休在一张表内同个字段里部分要相加)
hrs351t0加班表(内含TRUM,也就是加班时数)
hrs321t0请假表(同上,内含TRUM字段,也就是请假时数)
大概的意思就是,某部门每个人hrs390t0的上月结存时数(salaryid字段下为3032和3033的字段的QTY的值,相加所得的新的QTY)-hrs351t0的加班时数(TRUM字段)+hrs321t0的请假时数(TRUM字段)=本月结存。成为新的QTY字段即可。最后查询结果只要显示IDNO,EMPLNM,EMPLNO,DEPTID,DEPTNM,QTY,YYYYMM(201612),FACTNO,trnsid
select *
from pec.hrs110ma
inner join pec.hrs009m3 on pec.hrs110ma.DEPTID = pec.hrs009m3.DEPTID--几个表中的DEPTID部门ID是一样的,还有IDNO身份证号,EMPLNM员工姓名,EMPLNO员工编号,DEPTNM部门名称
where SUP_DEPTID = '00004199'--SUP_DEPTID是上级部门代号连接HRS009M3
and pec.hrs110ma.factno = '3300'--factno是厂别
and trnsid = '1';--trnsid代表是否在职
select IDNO, EMPLNM, DEPTNM, EMPLNO, DEPTNO, DEPTID
from pec.hrs110ma
where stop_date is null
and trnsid = 1
and deptid in (select deptid
from pec.hrs009m3
where SUP_DEPTNO = '01040000'
and factno = '3300'
and stop_date is null)--这段语句和上一段效果是一样的,stop_date is null和trnsid =1也是一样的道理。
之后我就懵逼了。子关联没有用,不会把人员导到hrs390t0,下面这个语句是我写的,但是感觉很不对。。。因为不会把上面的信息导进去还有就是3033和3032没有相加。这段应该是错的,我就发下希望不要误导各位大神。
select (pec.hrs390t0.QTY - pec.hrs321t0.TNUM + pec.hrs351t0.TNUM) as TNUM
from PEC.HRS390T0, PEC.HRS321T0, PEC.HRS351T0
where PEC.HRS390T0.QTY = PEC.HRS321T0.TNUM
and PEC.HRS351T0.TNUM = PEC.HRS321T0.TNUM
and pec.hrs390T0.SALARYID='3032'
字有些多了,还是希望有大神帮帮忙,有强迫症又不是很会,特来请教。谢谢各位了。
å¦ææå®è¿ä¸ç¾¤äººå¢ã大æ¦20个人左å³ï¼è¡¨å ³èæä¼åï¼å°±æ¯åè¿ç®æè§æäºé®é¢ãæ¹ä¾¿ç个微信åï¼å¤§å¥ã
追çæå®ä¸ç¾¤äººä½ å°±æ AND A.XX = 'ç¹æç对象' è¿ä¸ªç¹æç对象ç¨SQLè¯å¥æ¿æ¢æ A.XX in (select XXX from XXX)
追é®ç¨åå ³èåï¼è¿æ¯éº»ç¦å¤§å¥ç个èç³»æ¹å¼å§
追çä½ å æ¾ä¸ä¸ªäººçï¼æéè¦çåå ¨æ¾ç¤ºåºæ¥ï¼ éè¿å ³è(å ä¸è¦è®¡ç®)ï¼åªæ¾ç¤ºåå§æ°æ®ãæææºè½åN代äºï¼å¾®ä¿¡å°±å«èèäºã
追é®é£QQä¹è¡åãè¡¨å ³èæå¯ä»¥æä½çã
追çselect a.IDNO, a.EMPLNM, a.DEPTNM, a.EMPLNO, a.DEPTNO, a.DEPTID
from pec.hrs110ma a, pec.hrs009m3 b,
--å 个表ä¸çDEPTIDé¨é¨IDæ¯ä¸æ ·çï¼è¿æIDNO身份è¯å·ï¼EMPLNMåå·¥å§åï¼EMPLNOåå·¥ç¼å·ï¼DEPTNMé¨é¨å称
where a.DEPTID = b.DEPTID
and a.stop_date is null
and a.trnsid = '1' --trnsid代表æ¯å¦å¨è
and b.SUP_DEPTNO = '01040000'
and b.factno = '3300'
and b.stop_date is null
--å
æ§è¡ä¸ä¸ä¸é¢çSQLè¯å¥ï¼è¡¨éé¢å°½éä¸è¦å¸¦ â.âï¼å®å¨ä¸è¡å¯ä»¥ç¨'_'代æ¿ï¼è¡¨é带'.'å¯è½ä¼å½±åä½ ä»¥åçæ¥è¯¢è¯å¥
-- and SUP_DEPTID = '00004199' --æåç°è¿ä¸ªå段没ç¨è¿ï¼ä¸ç¥éå¨é£å¼ 表
--ä½ å¯ä»¥è¿ä¹æ¹ and SUP_DEPTID in (select ..........)
SQL的问题啊,我已经注明1了表。