我正在尝试查询DataTable,以便计算其中2列的总和,并将结果按其余字段分组。问题是我只能得到聚合列值,而我无法得到非聚合值。
这是我正在使用的代码:
var balances = from b in dtAccounts.AsEnumerable()
group b by b.Field<decimal>("ACCOUNT_ID") into g
select new
{
credit = g.Sum(b => b.Field<decimal>("CREDIT")),
debit = g.Sum(b => b.Field<decimal>("DEBIT"))
}
有人可以暗示他的代码吗?
提前致谢
答案 0 :(得分:2)
范围变量g
具有属性Key
,表示您按其分组的键。在您的情况下,这是b.Field<decimal>("ACCOUNT_ID")
。因此,如果您希望account_id
包含结果,则需要此查询:
var balances = from b in dtAccounts.AsEnumerable()
group b by b.Field<decimal>("ACCOUNT_ID") into g
select new
{
accountId = g.Key,
credit = g.Sum(b => b.Field<decimal>("CREDIT")),
debit = g.Sum(b => b.Field<decimal>("DEBIT"))
}