SELECT a.FLongNumber,
b.FLongNumber
FROM T_ORG_ADMIN a
LEFT JOIN T_ORG_ADMIN b ON INSTR(b.FLongNumber||'!',a.FLongNumber||'!')=1
WHERE a.FID = '行政组织ID'
2.尤其注意部门下还有部门,有些同事会这么写SQL
SELECT a.FLongNumber,
b.FLongNumber
FROM T_ORG_ADMIN a
LEFT JOIN T_ORG_ADMIN b ON b.FParentID = a.FID
WHERE FID = '行政组织ID'
这种写法是错误的,因为组织架构调整,可能还有更复杂情况,如公司下既有部门,又有公司等等情况
SELECT a.FLongNumber,
b.FLongNumber
FROM T_ORG_ADMIN a
LEFT JOIN T_ORG_ADMIN b ON INSTR(b.FLongNumber,a.FLongNumber)>0
WHERE a.FID = '行政组织ID'
这种写法在一定数据下也可能是错误的,比如一个简单的例子:
FLongNumber
02
0203
0203!04
上面的记录按照前面错误的SQL会将0203!04考虑在02或者0203组织下,但实际上0203!04只是在0203下
一群资深金蝶EAS开发顾问,专业为您解决金蝶EAS产品开发过程中的疑难问题/培训/方案指导,涉及产品EAS/EASWEB/EASSHR。如有需要,请加我WX:【kiana520】,备注金蝶技术咨询。技术/时间有价,收费服务。