2015-10-12 37 views
0

下面,我有一個SQL select語句,但是我遇到了一些正在拾取的條件問題。有沒有另外一種方法可以安排這種說法,以便條件得到解決?SQL條件未被拾取 - 左外部連接

條件沒有被拾起:

(NSTR_UI_OBJ.dte_ui_obj_end is NULL or (NSTR_UI_OBJ.dte_ui_obj_end >= '2015-10-01 00:00:00')) 

聲明全文:

SELECT NSTR_UI_OBJ.NAM_UI_OBJ 
     ,CDE_UI_OBJ_TYP 
     ,DES_UI_OBJ_LNG 
     ,NVL(NSTR_UI_OBJ_CNTC.CDE_NSTR_CNTC_TYP,'') 
     ,NVL(NSTR_CNTC_COMM.TXT_COMM_VALUE,'') 
FROM NSTR_UI_OBJ 
LEFT OUTER JOIN NSTR_UI_OBJ_CNTC ON NSTR_UI_OBJ_CNTC.ID_UI_OBJ = NSTR_UI_OBJ.ID_UI_OBJ 
           AND (NSTR_UI_OBJ.dte_ui_obj_end is NULL 
             or (NSTR_UI_OBJ.dte_ui_obj_end >= '2015-10-01 00:00:00') 
            ) 
LEFT OUTER JOIN NSTR_CNTC_COMM ON NSTR_UI_OBJ_CNTC.ID_NSTR_CNTC = NSTR_CNTC_COMM.ID_NSTR_CNTC 
ORDER BY CDE_UI_OBJ_TYP,NSTR_UI_OBJ.NAM_UI_OBJ 
+4

「撿到」?你能更詳細地解釋你的意思嗎?輸入/輸出/預期會有幫助。 – Blorgbeard

+0

所以現在該語句列出了所有記錄並且忽略了DTE_UI_OBJ_END值。我希望該語句只輸出DTE_UI_OBJ_END爲NULL或日期大於當前日期的記錄。 – jdoyle0116

回答

1

把條件放在一個WHERE條款

SELECT NSTR_UI_OBJ.NAM_UI_OBJ, CDE_UI_OBJ_TYP, DES_UI_OBJ_LNG, NVL(NSTR_UI_OBJ_CNTC.CDE_NSTR_CNTC_TYP, ''), NVL(NSTR_CNTC_COMM.TXT_COMM_VALUE, '') 
FROM NSTR_UI_OBJ 
LEFT OUTER JOIN NSTR_UI_OBJ_CNTC ON NSTR_UI_OBJ_CNTC.ID_UI_OBJ = NSTR_UI_OBJ.ID_UI_OBJ 
LEFT OUTER JOIN NSTR_CNTC_COMM ON NSTR_UI_OBJ_CNTC.ID_NSTR_CNTC = NSTR_CNTC_COMM.ID_NSTR_CNTC 
WHERE NSTR_UI_OBJ.dte_ui_obj_end IS NULL 
    OR (NSTR_UI_OBJ.dte_ui_obj_end >= '2015-10-01 00:00:00') 
ORDER BY CDE_UI_OBJ_TYP, NSTR_UI_OBJ.NAM_UI_OBJ 
+0

謝謝你Morpheus。這工作完美。 – jdoyle0116

+0

我很高興聽到它的工作,因爲有人決定downvote我的答案,而不留下評論。 – Morpheus

+0

@ jdoyle0116請考慮[接受](http://stackoverflow.com/help/someone-answers)和/或upvote我的答案,因爲它爲你工作,並可能幫助其他人。 – Morpheus