Hi everyone,

Here's the scenario. I have a table (let's call it **MyTable**) that consists of four fields:
**Id**, **Source**, **FirstField**, and **
SecondField**, where **Source** only takes one of two values:
**Source1** and **Source2**.

I need to return, using 3 different T-SQL queries:

1) Products that exist only in Source2 (in red above)

2) Products that exist only in Source1 (in green above)

3) Products that exist both in Source1 and Source2 (in black above)

For 1) so far I've been doing something along the lines of

SELECT * FROM MyTable WHERE Source=Source1 AND FirstField NOT IN (SELECT DISTINCT(FirstField) FROM MyTable WHERE Source=Source2)

Not being a T-SQL expert myself, I'm wondering if this is the right or more efficient way to go. I have read about INTERSECT and EXCEPT, but I am a little unclear if they could be applied in this case out of the box.

I hope I've explained myself, and would appreciate any tips or suggestions anyone can share. Thanks in advance.

Gabriel A. Cánepa