2014-10-06 25 views
0

我想帶回所有未拿到了84SQL - 僅顯示不符合參數的值。

一個CNN_NDP_NO至於有些人可以有多個CNN_NDP_NO是我下面的代碼只排除了84人進入,而不是整個人的人。

SELECT 
    CLIENT.CLN_SURNAME, 
    CLIENT.CLN_NINO, 
    CLIENT.CLN_BIRTH_DATE 
FROM 
    MASTER.CLIENT, 
    MASTER.CLIENT_NDNP 
WHERE 
    MASTER.CLIENT_NDNP.CNN_NDP_NO not in (84) 
    and 
    MASTER.CLIENT.CLN_NO = MASTER.CLIENT_NDNP.CNN_CLN_NO; 

這裏是不正確的數據回來的進一步解釋....

Farell先生具有以下CNN_NDP_NO(43,84,90,96)

作爲Farell先生有一個CNN_NDP_NO爲84,他需要從輸出中忽略

相反,我得到三個Farell先生(43,90,96)的條目。很明顯,一個明顯的會給我一個,但對於這個例子,我不想要。

回答

1

您可以not exists

SELECT c.CLN_SURNAME, c.CLN_NINO, c.CLN_BIRTH_DATE 
FROM MASTER.CLIENT c 
WHERE NOT EXISTS (SELECT 1 
        FROM MASTER.CLIENT_NDNP ndnp 
        WHERE c.CLN_NO = ndnp.CNN_CLN_NO and ndnp.CNN_NDP_NO = 84 
       ); 
+0

感謝您的回覆迅速@Gordon Linoff做到這一點。不幸的是,這帶來了沒有CNN_NDP_NO的結果。 我試過 '和ndnp.CNN_NDP_NO(null,84),但沒有修復它。有什麼想法嗎?' – 2014-10-06 12:22:01

+0

@ jack.r.barnes你可以嘗試以上查詢我認爲它會爲你工作的! – 2014-10-06 12:26:03

+0

@AmitSingh如上所述,我似乎仍然得到空值。我也試過............. 'code'SELECT c.CLN_SURNAME,c.CLN_NINO,c.CLN_BIRTH_DATE FROM MASTER.CLIENT c WHERE NOT EXISTS(SELECT 1 FROM MASTER。 CLIENT_NDNP ndnp WHERE c.CLN_NO = ndnp.CNN_CLN_NO和ndnp.CNN_NDP_NO = 84和ndnp.CNN_NDP_NO = NULL); – 2014-10-06 12:37:46