两张表,
ECN表里面有ID,日期,ECNNum,文号,机种...等字段,(ECNNum长度12位)
Rules表里面有ECNnum_Rules,Class_Rules,Fclass_Rules字段,(ECNnum_Rules长度为2位) 请问如何:将表Rules里面ECNnum_Rules做为条件,判断ECN表里ECNNum前2位等于ECNnum_Rules的数据
AND
如果等于的话,就把数据要出来
然后在在这些数据里面判断ECN表中的文号是否等于Rules表中的ECNnum_Class字段
OR
或者ECN表中的机种名是否包含Rules表中的ECNnum_Fclass字段,
是的话,则在将这些数据抓取出来。谢谢。
ECN表里面有ID,日期,ECNNum,文号,机种...等字段,(ECNNum长度12位)
Rules表里面有ECNnum_Rules,Class_Rules,Fclass_Rules字段,(ECNnum_Rules长度为2位) 请问如何:将表Rules里面ECNnum_Rules做为条件,判断ECN表里ECNNum前2位等于ECNnum_Rules的数据
AND
如果等于的话,就把数据要出来
然后在在这些数据里面判断ECN表中的文号是否等于Rules表中的ECNnum_Class字段
OR
或者ECN表中的机种名是否包含Rules表中的ECNnum_Fclass字段,
是的话,则在将这些数据抓取出来。谢谢。
SELECT A.*
FROM ECN A JOIN RULES B ON LEFT(A.ECNNUM,2)=B.ECNNUM_RULES AND A.文号=B.ECNnum_Class
UNION
SELECT A.*
FROM ECN A JOIN RULES B ON A.机种名 LIKE '%'+B.ECNnum_Fclass+'%'
跑出来的结果有一个问题就是ECNNUM不等于ecnnum_rules的数据也会跑出来 。
(PID VARCHAR(10),
DEPT_P VARCHAR(10),
ID VARCHAR(10))INSERT INTO #ECN
SELECT 'EC123','A1','AA1' UNION ALL
SELECT 'EC124','B2','AA2' UNION ALL
SELECT 'ED125','A3','AA3' UNION ALL
SELECT 'EC126','A4','AA4'UNION ALL
SELECT 'EC127','B4','AA5'UNION ALL
SELECT 'EC128','A6','AA6'CREATE TABLE #RULES
(PID VARCHAR(10),
DEPT_P VARCHAR(10),
ID VARCHAR(10))INSERT INTO #RULES
SELECT 'EC','A1','AA2' UNION ALL
SELECT 'MP','A2','AA1' UNION ALL
SELECT '','A3','' UNION ALL
SELECT '','A4',''UNION ALL
SELECT '','A6',''
SELECT A.*
FROM #ECN A JOIN #RULES B ON LEFT(A.PID,2)=B.PID AND A.DEPT_P=B.DEPT_P
UNION
SELECT A.*
FROM #ECN A JOIN #RULES B ON A.ID LIKE '%'+B.ID+'%'