SQL Query在现有数据

时间:2016-11-14 11:15:02

标签: sql sql-server

简:我想检查另一个表中是否存在某个单元格值。

Long:我们有一台旧的MS-SQL 2000服务器和一些较新的SQL Server 2012.我们将数据从旧的导入到新的。因此,我们复制旧表并将这些值转换为项目分类帐条目表。我们有一个"检查"表,包含已读入项目分类帐表的数据。

现在我们遇到了一些问题,这些问题都是在"检查"不在“项目分类帐条目表”中的数据表。所以我们错过了一些数据。

所以我做了一个测试,如果我从Check Table中删除条目并开始新的导入,那么数据将被复制到Item Ledger Entry Table。所以现在我必须检查检查表中的数据,但不检查项目分类帐条目表中的数据。好的是我们在Check表中有一个主键,[No_],在Item Ledger Entry表中有[Document No_]。我们有一个时间表,从11月19日开始。

但是如何将它放入查询?必须是这样的

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

2 个答案:

答案 0 :(得分: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_])

答案 1 :(得分: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