查询出来的表dtSumNaturalWorkHour,根据PersonName,ProjectName对WorkHour求和。
var query = dtSumNaturalWorkHour.AsEnumerable().GroupBy(d => new { PersonName = d.Field<string>("PersonName"), ProjectName = d.Field<string>("ProjectName")
})
.Select(g => new
{
PersonName = g.Key.PersonName,
ProjectName = g.Key.ProjectName,
num = g.Sum(d => Convert.ToDouble(d["WorkHour"])),
});
只根据一列值group 的查询求和:根据PersonName对WorkHour求和.
var dt= dtSumNaturalWorkHour.Rows.Cast<DataRow>().GroupBy<DataRow, string>(row => Convert.ToString(row["PersonName"])).
Select(group => new { group.Key, Value = group.Sum(x => Convert.ToDouble(x["WorkHour"])) });
PS
var result = dtExecItem.Rows.Cast<DataRow>().
GroupBy<DataRow, string>(row => Convert.ToString(row["StatID"])).
Select(group => new
{
group.Key,
SumValue = group.Sum(x => Convert.ToDouble(x["Price"]))
});
foreach (var stat in result)
{
DataRow dr = dtPromClass.NewRow();
dr["ClassTypeID"] = stat.Key;
dr["ClassAmount"] = stat.SumValue;
dr["PromAmount"] = 0;
dtPromClass.Rows.Add(dr);
}