简:我想检查另一个表中是否存在某个单元格值。
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"
答案 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