SELECT DISTINCT 'DATA' AS DSN,
'MASTER' AS ORG_ID,e.emp_id,
e.emp_name AS EMPLOYEE_NUMBER,
e.emp_firstname AS EMPLOYEE_FIRST_NAME,
e.emp_lastname AS EMPLOYEE_LAST_NAME,
e.emp_val20 AS PAY_STATUS,
(NVL(TO_CHAR(PGT.PAYGRPTYP_NAME),'MASTER')) AS PAY_FREQUENCY,
E.EMP_VAL16 AS PAY_CLASS,
SP.SHFTPAT_NAME AS SHIFT_CODE,
WB.WBU_EMAIL AS EMAIL_ADDR,
(NVL(TO_CHAR(DE.DEPT_NAME),'MASTER')) AS DEPARTMENT,
NULL AS HELD_POSTN,
(NVL(TO_CHAR(J.JOB_NAME),'MASTER')) AS JOB_TITLE,
WB. WBU_NAME AS USER_NAME,
(NVL(TO_CHAR(ET.WBT_ID),'MASTER')) AS TEAM_CODE,
WT.WBT_NAME AS TEAM_NAME,
WT.WBT_DESC AS TEAM_DESC,
(NVL(TO_CHAR(EB.EMPBDG_BADGE_NUMBER),'MASTER')) AS PERMANENT_BADGE_NO
FROM EMPLOYEE E
LEFT JOIN SHIFT_PATTERN SP
ON E.SHFTPAT_ID =SP.SHFTPAT_ID
LEFT JOIN PAY_GROUP PT
ON E.PAYGRP_ID =PT.PAYGRP_ID
LEFT JOIN PAY_GROUP_TYPE PGT
ON PT.PAYGRPTYP_ID =PGT.PAYGRPTYP_ID
LEFT JOIN EMPLOYEE_BADGE EB
ON E.EMP_ID=EB.EMP_ID
LEFT JOIN EMP_UDF_DATA ED
ON E.EMP_ID=ED.EMP_ID
LEFT JOIN WORKBRAIN_USER WB
ON E.EMP_ID=WB.EMP_ID
LEFT JOIN EMP_DEF_LAB D
ON E.EMP_ID=D.EMP_ID
LEFT JOIN DEPARTMENT DE
ON D.DEPT_ID=DE.DEPT_ID
LEFT JOIN EMPLOYEE_JOB EJ
ON E.EMP_ID=EJ.EMP_ID
LEFT JOIN JOB J
ON EJ.JOB_ID=J.JOB_ID
LEFT JOIN EMPLOYEE_TEAM ET
ON E.EMP_ID=ET.EMP_ID
LEFT JOIN WORKBRAIN_TEAM WT
ON ET.WBT_ID=WT.WBT_ID
LEFT JOIN CALC_GROUP CG
ON E.CALCGRP_ID =CG.CALCGRP_ID
WHERE E.EMP_ID NOT IN (SELECT EMP_ID FROM EMPLOYEE_READER_GROUP)
AND sysdate BETWEEN ET.empt_start_date AND ET.empt_end_date
AND ET.empt_home_team = 'Y'
AND sysdate BETWEEN EJ.EMPJOB_START_DATE AND EJ.EMPJOB_END_DATE
GROUP BY E.EMP_ID,
-- ER.rdrgrp_id,
e.emp_name,
e.emp_lastname,
e.emp_firstname,
e.emp_status,
e.emp_val20,
PGT.PAYGRPTYP_NAME,
E.EMP_VAL16,
e.EMP_VAL18,
EB.EMPBDG_BADGE_NUMBER,
WB.WBU_EMAIL,
DE.DEPT_NAME,
J.JOB_NAME,
SP.SHFTPAT_NAME,
WB. WBU_NAME ,
ET.WBT_ID ,
WT.WBT_NAME,
WT.WBT_DESC;
我想從員工表中的所有數據,所以我用左加入,但我沒有得到所有行是提供員工表中缺少一些值。請幫幫我有了這個 。我在員工中有43000行,但是當我使用這個時,我只有17000行。我不知道我在哪裏滯後。我希望空列作爲主表的右值。加入一個表來使用多個LEFT OUTER JOIN ORACLE SQL
您右側表格中的WHERE條件會將JOIN加入到INNER JOIN中。 – Eric
刪除這些條件AND ET.empt_start_date和ET.empt_end_date AND ET.empt_home_team ='Y' 和EJ.EMPJOB_START_DATE和EJ.EMPJOB_END_DATE'之間的sysdate,並查看您是否獲得所有員工。 – Eric