in general it can be handled as a groupby case
Assign Activity:
dtCleansed | Datatype: DataTable =
(From d In dtData.AsEnumerable
Group d By k1=d("PO").toString.Trim, k2=d("item no").toString.Trim Into grp=Group
Let gpo =grp.OrderBy(Function (g) Convert.ToInt32(String.IsNullOrEmpty(g("status").toString.Trim)))
Select r = gpo.First()).CopyToDataTable