something like this maybe? give or take spellings of columns etc
var valuesByMonth =
from p in dt
group p by new {p.ReceivedDate.Month, id = p.id} into g
select new {currentValue = g.Sum(p => p.CurrentValue) , g.Key.Month , g.Key.id };
or for data in DataTable
var valuesByMonth =
from p in dt.AsEnumerable()
group p by new {p.Field<DateTime>("ReceivedDate").Month, id = p.Field<int>("id")} into g
select new {currentValue = g.Sum(p => p.Field<double>("CurrentValue")) , g.Key.Month , g.Key.id };