当需要查询某个行政组织下有那些职员时,可以使用下面这个SQL,可以查到对应行政组织下所有职员的任职情况:
SELECT a.FName_L2, --查询公司
b.FName_L2, --部门
c.FName_L2, --职位
e.FName_L2 --职员
FROM T_ORG_ADMIN a
LEFT JOIN T_ORG_ADMIN b ON INSTR(b.FLongNumber||'!',a.FLongNumber||'!')=1
LEFT JOIN T_ORG_POSITION c ON c.FAdminOrgUnitID = b.FID
LEFT JOIN T_ORG_POSITIONMEMBER d ON d.FPositionID = c.FID
LEFT JOIN T_BD_PERSON e ON e.FID = d.FPersonID
WHERE 1=1
--AND d.FIsPrimary = 1 --是否主职位
AND d.FID IS NOT NULL --职位上没有员工
AND a.FID = 'tQfMVwEQEADgAAa/wKgS/sznrtQ='
ORDER BY 1,2,3,4
其中需要注意:
1.每个职员在这个行政组织下任职并不唯一,可能一人身兼多职位,并且可能是在不同的部门,所以统计人数尤其要注意这个问题,一般是以【DISTINCT 人员ID】方式统计
2.每个职员仅有一个主职位,这个职员的主职位可能在当前行政组织下,也可能不是;如果设置只查询主职位,可能将这些主职位不在当前行政组织下的职员过滤掉
3.职位上可能没有员工,如果是统计人数,需要忽略,职位上没人职员的记录
一群资深金蝶EAS开发顾问,专业为您解决金蝶EAS产品开发过程中的疑难问题/培训/方案指导,涉及产品EAS/EASWEB/EASSHR。如有需要,请加我WX:【kiana520】,备注金蝶技术咨询。技术/时间有价,收费服务。