• There's lots of ways of doing this, here's another

    SELECT CustID

    FROM product_details

    WHERE ProdId = 1

    INTERSECT

    SELECT CustID

    FROM product_details

    WHERE ProdId = 4

    EXCEPT

    SELECT CustID

    FROM product_details

    WHERE ProdId = 0;

    Also this

    WITH Summary AS (

    SELECT CustID,

    SUM(CASE WHEN ProdId = 0 THEN 1 ELSE 0 END) AS NumProdId0,

    SUM(CASE WHEN ProdId = 1 THEN 1 ELSE 0 END) AS NumProdId1,

    SUM(CASE WHEN ProdId = 4 THEN 1 ELSE 0 END) AS NumProdId4

    FROM product_details

    GROUP BY CustID)

    SELECT CustID

    FROM Summary

    WHERE NumProdId0=0 AND NumProdId1>0 AND NumProdId4>0;

    ____________________________________________________

    Deja View - The strange feeling that somewhere, sometime you've optimised this query before

    How to get the best help on a forum

    http://www.sqlservercentral.com/articles/Best+Practices/61537