- - PR -
LINQを使用した集計方法
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-08-20 10:54
お世話になっております。
LINQを使用した集計方法で悩んでいます。 2つのキー項目を使って集計を行いたいのですが、 どうやればできるのかがわかりません。 EX)hogeK1とhogeK2でhoge数量の集計を行いたい。 hogeK1|hogeK2|hoge数量 1 |1 |10 1 |1 |20 2 |2 |30 2 |2 |40 ------------------ 期待する結果 hogeK1|hogeK2|hoge数量 1 |1 |30 2 |2 |70 キー項目が1つであれば、 var db = new HogeDataContext(); var hogehoge = from hogeT in db.HOGETABLE group hogeT.hoge数量 by hogeT into gr select{ total = gr.Sum() } で、取得できるのだと思いますが。 ご存知の方がいらっしゃいましたらご教授願います。 |
|
投稿日時: 2008-08-20 14:45
自己レスです。
以下のようにすればいいようですね。 group hogeT.hoge数量 by new { hogeT.hogeK1, hogeT.hogeK2 } http://msdn.microsoft.com/ja-jp/library/bb386922.aspx |
|
投稿日時: 2008-08-20 15:20
また別の問題が...
以下のように考えているのですが、Keyの値が同じになってしまっているようです。 var hogehoge = from hogeT in db.HOGETABLE group hogeT.hoge数量 by new { hogeT.hogeK1, hogeT.hogeK2 } into gr select new { gr.Key.hogeK1, gr.Key.hogeK2, total = gr.Sum() }; 期待する結果 hogeK1|hogeK2|hoge数量 1 |1 |30 2 |2 |70 実際は hogeK1|hogeK2|hoge数量 2 |2 |30 ←キーが同じ 2 |2 |70 ←キーが同じ となってしまっているようです。 期待する結果のようにしたいのですが方法を ご存知の方がいらっしゃいましたらご教授願います。 |
|
投稿日時: 2008-08-20 15:30
またまた自己レスですみません。
勘違いだったようです。 |
1