2013-12-24 71 views
0

我有一個具有EXISTS查詢的查詢,它具有PRCS_STE_CD列。 QUERY<SQL>如何編輯EXISTS查詢

SELECT   
    PRCS_SNO 
      , YEAR 
      , SUBSC_CANC_YN        
    FROM 
     TB_POT_ECD_PRCS_INFO INF 
    WHERE 
     INF.SUBSC_CANC_YN = 'N' 
     AND EXISTS (
        SELECT 'X' 
        FROM TB_POT_ECD_PRCS_HIST HIS 
        WHERE PRCS_STE_CD = 'R01' 
        ) 

思想是隻顯示那些PRCS_STE_CD = 'R01'。

但問題是有些人對PRCS_STE_CD有'R01'和'R02'。

(在這種情況下,它既有R01和R02,我不想表現出來就行了。)

Basiacally,我想表明一個僅具有R01的PRCS_STE_CD。

哦和PRCS_STE_CD CAN NOT只有R02。它必須有R01纔能有R02。

同樣,當它同時具有R01,R02時,不應在列表中選擇它。

任何人都可以幫助編輯查詢嗎?

+2

也許你應該解釋你試圖解決的問題,給出示例數據和期望的結果。 –

+0

是的,它聽起來像你需要的是一個雙向左連接/應用,但是外部記錄與內部關係是什麼關係。內部沒有關聯,只是返回一個集合而不管外部記錄。 – DRapp

+0

http://stackoverflow.com/questions/9023879/sql-update-statement-with-where-exists – 2013-12-24 03:15:52

回答

3

在您的表格中,您是如何爲PRCS_STE_CD存儲R02的。我假設你有一個不同的列來存儲R02。如果是這樣,那麼你可以嘗試使用IN和OR運算符。

SELECT  
    PRCS_SNO, YEAR, SUBSC_CANC_YN        
    FROM TB_POT_ECD_PRCS_INFO INF 
    WHERE INF.SUBSC_CANC_YN = 'N' 
    AND 'X' IN (
       SELECT 'X' 
       FROM TB_POT_ECD_PRCS_HIST HIS 
       WHERE PRCS_STE_CD = 'R01' OR Second_Column= 'R02' 
       )