Reputation: 531
I have a query that matches a field from a query to another field from a table. Here is the query:
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;
It returns the values that match in the Carrier field of the CarriersToSend query and the TPA_CARRIER field of [Dual Year Carrier Report].
I then need to return the values that are in the Carrier field of the CarriersToSend query that do not appear in the above query. I think it would be something like a WHERE NOT EXISTS QUERY. I put one together below, but it is not returning anything and I cant figure out why. Any help would be much appreciated. Thank you!
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;)
Upvotes: 2
Views: 22498
Reputation: 46229
Your NOT EXISTS
with subquery didn't connect with the main query, so that didn't return any result.
You can try this.
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
)
Upvotes: 2
Reputation: 1093
Your semi colon should come after the closing parenthesis. Apart from that, your query will logically never return any records. That's because your subquery returns a result and then you are trying to return a result that doesn't match the result of the subquery. This will logically result in a false condition. Try this instead:
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
);
Upvotes: 3