Maybe something like the following. If not, post some test data and expected results:-- *** Test Data ***DECLARE @CustomerPlans TABLE( CustomerID int NOT NULL ,PlanType varchar(20) NOT NULL ,DateFrom datetime NOT NULL ,DateTo datetime NULL)INSERT INTO @CustomerPlansSELECT 1, 'Basic', '20000101','20030601' UNION ALLSELECT 1, 'Family', '20030601', NULL UNION ALLSELECT 2, 'Family', '20020701', '20060314' UNION ALLSELECT 3, 'Basic', '20000123','20040601' UNION ALLSELECT 3, 'Family', '20040601','20070506' UNION ALLSELECT 4, 'Basic', '20010823', NULL-- *** End Test Data ***SELECT C1.CustomerIDFROM @CustomerPlans C1 JOIN @CustomerPlans C2 ON C1.CustomerID = C2.CustomerIDWHERE C1.PlanType = 'Family' AND C2.PlanType = 'Basic' AND C2.DateTO <= C1.DateFrom AND C1.DateTo IS NOT NULL AND C2.DateTo IS NOT NULL