2016-11-14 48 views
0

短的兩個表:我要檢查,如果某個單元格的值在另一個表中。SQL查詢相結合對現有數據

朗:我們有一箇舊的MS-SQL 2000服務器和一些較新的SQL Server 2012中,我們從舊的數據導入到新的一個。在此我們複製舊錶並將這些值轉換成項目分類帳分錄表。我們有一個「檢查」表,其中包含已經讀入「項目分類賬表」的數據。

現在我們有一些問題,這些絲毫複製和有數據的「檢查」表是不是在該項目分類帳項目表條目。所以我們錯過了一些數據。

所以我做了一個測試,如果我從檢查表中刪除條目並開始一個新的導入,數據被複制到Item Ledger Entry Table中。因此,現在我必須檢查檢查表中的數據,但不檢查項目分類帳分錄表中的數據。好消息是,我們有一個主鍵,[NO_]在檢查表,並在項目分類帳條目表[文檔NO_。我們有一個時間表,從11月19日開始。

但我怎麼將它放入一個查詢?一定是這樣的

select * 
from [Check Table] 
where No_ "does not exist in cell [Document No_] in Item Ledger Entry" 
+0

你需要做一個連接。但我現在不知道如何爲MS-SQL做這件事。 – Seb

回答

0
Select Chk.* 
From [Check table] as chk Left Join [Item Ledger Entry table] as ItmLgr 
On chk.[No_]=ItmLgr.[Document No_] 
Where ItmLgr.[Document No_] is null 
0

你必須找到兩個數據簡單的選擇:

SELECT * 
FROM [Check Table] ct 
    LEFT JOIN [Item Ledger Entry] ile ON CT.[No_] = ile .[Document No_] 
WHERE ile.[Document No_] IS NULL 

或類似你這樣解釋的邏輯,而是投入到正確的語法:

SELECT * 
FROM [Check Table] ct 
WHERE NOT EXISTS (SELECT 1 
        FROM [Item Ledger Entry] ile 
        WHERE ile.[Document No_] = ct.[No_])