do some preperations for the target structures:
Clone dt1 and add the status datacolumn to the dtReportTMPL
Clone for dtOut1/2
First LINQ:
(From d1 In dt1.AsEnumerable
Group Join d2 In dt2.AsEnumerable
On d1("PLCNO").toString Equals d2("PLCNO").toString And d1("DDNO").toString Equals d2("DDNO").toString And d1("EML").toString Equals d2("EML").toString Into gj = Group
From g In gj.DefaultIfEmpty
Let status = If(isNothing(g), Nothing, g("STATUS"))
Let ra = d1.ItemArray.Append(status).toArray
Select dtOut1.Rows.Add(ra)).CopyToDataTable
Second LINQ:
(From d1 In dt1.AsEnumerable
Join d2 In dt2.AsEnumerable
On d1("PLCNO").toString Equals d2("PLCNO").toString And d1("DDNO").toString Equals d2("DDNO").toString And d1("EML").toString Equals d2("EML").toString
Let ra = d1.ItemArray.Append(d2("STATUS")).toArray
Select dtOut1.Rows.Add(ra)).CopyToDataTable