DataTable聚合问题

时间:2009-06-16 02:37:20

标签: linq-to-objects

我正在尝试查询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"))
                      }

有人可以暗示他的代码吗?

提前致谢

1 个答案:

答案 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"))
                      }