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 に答える