Give a try at Assign activity dtResult =
(From d in dtData.AsEnumerable Group d by k=d("id").toString.Trim into grp=Group Let sc = grp.Sum(Function (x) CInt(x("Amount").toString.Trim)) Where sc > 0 From g in grp Select r=g).CopyToDataTable
Handling empty results: