Ah - wasn't quite what I had in mind, but here goes:SELECT L.JobNumber, IsNull(C1.RunNumber, C2.RunNumber) as RunNumberFROM lodgment L LEFT JOIN conract C1 ON L.jobnumber = C1.jobnumber AND L.type = 'P' LEFT JOIN conract C2 ON L.jobnumber = C2.jobnumber AND L.runnumber = C2.runnumber AND L.type <> 'P'
Or you could do it this way (although I wouldn't recommend...)SELECT L.JobNumber, C.RunNumberFROM lodgment L INNER JOIN conract C ON (CASE WHEN L.Type = 'P' THEN Convert(varchar, L.jobnumber) ELSE Convert(varchar, L.jobnumber) + ';' + Convert(varchar, L.runnumber) END) = (CASE WHEN L.Type = 'P' THEN Convert(varchar, C.jobnumber) ELSE Convert(varchar, C.jobnumber) + ';' + Convert(varchar, C.runnumber) END)