• Hi Simon

    This is simple but somewhat restrictive:

    SELECT A.RetailerID, MIN(B.RetailerIDTheirs) AS RetailerIDTheirs

    FROM #TableA A

    LEFT JOIN #TableB B ON B.RetailerID = A.RetailerID

    GROUP BY A.RetailerID

    This is less simple but offers more flexibility:

    SELECT A.RetailerID, B2.*

    FROM #TableA A

    LEFT JOIN (SELECT RetailerID, MIN(RetailerIDTheirs) AS RetailerIDTheirs FROM #TableB GROUP BY RetailerID) B ON B.RetailerID = A.RetailerID

    LEFT JOIN #TableB B2 ON B2.RetailerID = B.RetailerID AND B2.RetailerIDTheirs = B.RetailerIDTheirs

    Both are likely to be more efficient than a correlated subquery.

    “Write the query the simplest way. If through testing it becomes clear that the performance is inadequate, consider alternative query forms.” - Gail Shaw

    For fast, accurate and documented assistance in answering your questions, please read this article.
    Understanding and using APPLY, (I) and (II) Paul White
    Hidden RBAR: Triangular Joins / The "Numbers" or "Tally" Table: What it is and how it replaces a loop Jeff Moden