• I think you need to re-arrange your query to find sales that had no valid Member, then list those memebers.

    but as GilaMonster states, Please create DDLs with temp tables, and a grid showing what you actually want.

    www.sqlservercentral.com/articles/Best+Practices/61537/[/url]

    But this is going to return Multiple Rows and probably not what you want.

    SELECT z.*, t.purchase_dt

    FROM membership_record_tbl z

    INNER JOIN (

    SELECT b.member_id, b.company_id, b.purchase_dt

    FROM sales_log_tbl b

    LEFT OUTER JOIN membership_record_tbl a

    ON a.member_id = b.member_id

    AND a.company_id = b.company_id

    AND b.purchase_dt between a.membership_effective_dt and a.membership_term_dt

    WHERE a.Member_id IS NULL)t

    ON z.member_id = t.member_id

    AND z.company_id = t.company_id