Here's what I came up with:SELECT p.EmpId, p.ModuleID, StartDate = CASE WHEN p.ModuleID = 5 AND t.StartDate IS NOT NULL THEN t.StartDate ELSE p.StartDate END, CompleteDate = CASE WHEN p.ModuleID = 5 AND t.CompleteDate IS NOT NULL THEN t.CompleteDate ELSE p.CompleteDate ENDFROM t_ParticipantStatus pLEFT OUTER JOIN( SELECT EmpID, StartDate, CompleteDate FROM t_ParticipantStatus WHERE ModuleID = '1' AND CompleteDate > '10/1/05') tON p.EmpId = t.EmpId
And here's my test:CREATE TABLE t_ParticipantStatus( EmpID int, ModuleID char(1), StartDate datetime, CompleteDate datetime)INSERT INTO t_ParticipantStatus VALUES(66, '1', '10/1/05', '10/10/05')INSERT INTO t_ParticipantStatus VALUES(77, '1', '10/6/05', '10/8/05')INSERT INTO t_ParticipantStatus VALUES(99, '1', '9/1/05', '9/3/05')INSERT INTO t_ParticipantStatus (EmpId, ModuleID) VALUES(66, '5')INSERT INTO t_ParticipantStatus (EmpId, ModuleID) VALUES(99, '7')SELECT *FROM t_ParticipantStatusSELECT p.EmpId, p.ModuleID, StartDate = CASE WHEN p.ModuleID = 5 AND t.StartDate IS NOT NULL THEN t.StartDate ELSE p.StartDate END, CompleteDate = CASE WHEN p.ModuleID = 5 AND t.CompleteDate IS NOT NULL THEN t.CompleteDate ELSE p.CompleteDate ENDFROM t_ParticipantStatus pLEFT OUTER JOIN( SELECT EmpID, StartDate, CompleteDate FROM t_ParticipantStatus WHERE ModuleID = '1' AND CompleteDate > '10/1/05') tON p.EmpId = t.EmpIdDROP TABLE t_ParticipantStatus
Tara Kizeraka tduggan