1

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

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

提前致谢

4

1 回答 1

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"))
                      }
于 2009-06-16T08:47:10.627 回答