在 MS Access SQL 查询中使用 WHERE NOT EXIST



我有一个查询,它将查询中的一个字段与表中的另一个字段匹配。 下面是查询:

SELECT DISTINCT CarriersToSend.Carrier, [Dual Year Carrier Report].TPA_CARRIER
FROM [Dual Year Carrier Report] INNER JOIN CarriersToSend ON [Dual Year Carrier Report].TPA_CARRIER = CarriersToSend.Carrier;

它返回在 CarriersToSend 查询的"运营商"字段和 [双年运营商报告] 的"TPA_CARRIER"字段中匹配的值。

然后,我需要返回 CarriersToSend 查询的"运营商"字段中的值,这些值未出现在上述查询中。 我认为它会类似于不存在查询。 我在下面放了一个,但它没有返回任何东西,我不知道为什么。 任何帮助将不胜感激。 谢谢!

SELECT DISTINCT EE_First, EE_LAST
FROM [Dual Year Carrier Report]
WHERE NOT EXISTS (
SELECT DISTINCT CarriersToSend.Carrier, [Dual Year Carrier Report].TPA_CARRIER
FROM [Dual Year Carrier Report] INNER JOIN CarriersToSend ON [Dual Year Carrier Report].TPA_CARRIER = CarriersToSend.Carrier;)

分号应该在右括号之后。 除此之外,您的查询在逻辑上永远不会返回任何记录。 这是因为您的子查询返回一个结果,然后您尝试返回与子查询结果不匹配的结果。这在逻辑上会导致错误条件。 试试这个:

SELECT DISTINCT EE_First, EE_LAST
FROM [Dual Year Carrier Report]
WHERE NOT EXISTS 
(
SELECT '1'
FROM CarriersToSend INNER JOIN [Dual Year Carrier Report] ON 
CarriersToSend.Carrier = [Dual Year Carrier Report].TPA_CARRIER
);

带有子查询的NOT EXISTS未与主查询连接,因此没有返回任何结果。

你可以试试这个。

SELECT DISTINCT EE_First, EE_LAST
FROM [Dual Year Carrier Report] t1
WHERE NOT EXISTS 
(
SELECT 1
FROM CarriersToSend t2
WHERE t1.TPA_CARRIER = t2.Carrier
)

最新更新