我有一个查询,该查询将查询中的一个字段与表中的另一个字段进行匹配。这是查询:
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查询的Carrier字段和[Dual Year Carrier Report]的TPA_CARRIER字段匹配的值。
然后,我需要返回CarriersToSend查询的Carrier字段中未在上面的查询中出现的值。我认为这就像是“不存在查询”。我在下面放一个,但是它什么也没返回,我不知道为什么。任何帮助将非常感激。谢谢!
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;)
答案 0 :(得分:1)
您的带有子查询的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
)
答案 1 :(得分:1)
您的半冒号应放在右括号后。 除此之外,您的查询在逻辑上永远不会返回任何记录。 那是因为您的子查询返回一个结果,然后您尝试返回的结果与子查询的结果不匹配。这将在逻辑上导致错误条件。 尝试以下方法:
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
);