Try this:
DECLARE @T1 TABLE (
PatientName varchar(20),
DateSaved date,
DatedRan date,
Code varchar(20),
CodeName varchar(20),
[Rank] int
);
INSERT INTO @T1
Select 'Sam', '01-01-2020', '01-01-2020', 'C2020', 'Casual', 3;
DECLARE @T2 TABLE (
PatientName varchar(20),
DateSaved date,
DatedRan date,
Code varchar(20),
CodeName varchar(20),
[Rank] int
);
INSERT INTO @T2 VALUES
('Sam', '01-01-2020', '01-01-2020', 'D2020', 'Serious', 1),
('Sam', '01-01-2020', '01-02-2020', 'D2020', 'Serious', 2),
('Sam', '01-01-2020', '01-03-2020', 'D2020', 'Serious', 2);
Select PatientName, DateSaved, DatedRan, Code, CodeName, [Rank]
from @T1
Union All
Select t2.PatientName,
t2.DateSaved,
t2.DatedRan,
CASE WHEN t2.DateSaved <> t2.DatedRan THEN t1.Code ELSE t2.Code END AS Code,
CASE WHEN t2.DateSaved <> t2.DatedRan THEN t1.CodeName ELSE t2.CodeName END AS CodeName,
t2.[Rank]
from @T2 AS t2
INNER JOIN @T1 AS t1 ON t2.PatientName = t1.PatientName;
Output: