2010-08-19 31 views
0

我有兩個表如何根據聯接集中的條件從表中刪除記錄?

Table : 1, Name : NdcAwp, Columns-Ndc, AwpUnitCost 
Table : 2, Name : InvalidNdcs, Column-Ndc 

現在,我想從表中刪除這些記錄:1,其AwpUnitCost是< = 0,AwpUnitCost IS NULL,它不會從表具有相同的ndc的:2

+0

認爲你可能需要澄清一點。你加入名字上的表? – 2010-08-19 20:58:19

+0

如果您編輯此標題以獲得更具描述性的標題,您將有更好的機會獲得答案。 – 2010-08-19 21:02:16

回答

1

我相信這是你想要什麼:

DELETE FROM NdcAwp 
WHERE (AwpUnitCost <= 0 
OR AwpUnitCost IS NULL) 
AND Ndc NOT IN 
(
SELECT Ndc 
FROM InvalidNdcs 
) 
+0

非常感謝您的幫助。萬分感激。 – User7354632781 2010-08-19 21:08:18

1

這可能會做你的要求。該語句從第一個表中刪除,其中AwpUnitCost小於或等於0. COALESCE將空值更改爲0,因此具有空AwpUnitCost的行將包含在刪除中。

NOT IN子句包含NdcAwp中不在InvalidNdcs中的行,基於Ndc值。

DELETE 
FROM NdcAwp 
WHERE COALESCE(AwpUnitCost, 0) <= 0 
    AND Ndc NOT IN (SELECT Ndc FROM InvalidNdcs) 
+0

非常感謝您的幫助。萬分感激。 – User7354632781 2010-08-19 21:05:34

相關問題