SELECT A.EMP_ID A_EMP_ID,
A.EMP_CODE A_EMP_CODE,
B.EMP_ID B_EMP_ID,
B.EMP_CODE B_EMP_CODE,
C.EMP_ID C_EMP_ID,
C.EMP_CODE C_EMP_CODE,
FROM EMP A
LEFT OUTER JOIN EMP B
ON A.U_CODE =B.U_CODE
LEFT OUTER JOIN EMP C
ON A.U_CODE =C.U_CODE
WHERE A.SRC ='A'
AND B.SRC ='B'
AND C.SRC ='C'
對於一名員工,我有來自不同來源的數據以及他的id與所有系統不同的地方。數據來自這個表格的數據源有5個以上不同的源系統。在所有來源中,u_code將保持不變。 Emp從每個系統獲取每一行。oracle自身外連接過濾記錄
現在,我需要構建一個跨行表,其中一行中我可以爲單個員工提供所有源系統標識。如果員工在所有三個系統中都有數據,但如果數據僅存在於兩個系統中,則會過濾掉以上數據。
表數據
empid,emp_code,src,u_code
1,ABC,A,101
2,PQR,B,101
3,XYZ,C,101
4,KPO,A,102
5,LIP,B,102
查詢應該返回
A_EMP_ID,A_EMP_CODE,B_EMP_ID,B_EMP_CODE,C_EMP_ID,C_EMP_CODE
1,ABC,2,PQR,3,XYZ,101
4,KPO,5,LIP,,,102
查詢工作正常進行101 u_code但不returing 102
數據庫是Oracle 10g中
只是針對其他用戶,我對此需求使用oracle pivot功能。讓工作變得更容易。 –