2011-06-29 20 views
1

データを返す以下のLinqクエリがありますが、期間と集計列のグループ化のために列を集計する必要があります。Linq toエンティティグループBy&Sum

これを行うにはどうすればよいですか?

LINQ

from t In tblTimes 
    join h In tblEngineeringDashboard_CADMachinesCounts on t.ID Equals h.TimeID 
        Order By t.Period 
        Group By t.Period, h.Count Into Group 
        select Period, Count 

DATA

Period     CountΞΞ 
01/01/2010 00:00:00  0 
01/01/2010 00:00:00  1 
01/01/2010 00:00:00  2 
01/01/2010 00:00:00  3 
01/01/2010 00:00:00  5 
01/01/2010 00:00:00  6 
01/01/2010 00:00:00  7 
01/01/2010 00:00:00  9 
01/01/2010 00:00:00  11 
01/01/2010 00:00:00  12 
01/01/2010 00:00:00  14 
01/01/2010 00:00:00  15 
01/01/2010 00:00:00  17 
01/01/2010 00:00:00  21 
01/01/2010 00:00:00  22 
01/01/2010 00:00:00  30 
01/01/2010 00:00:00  31 
01/01/2010 00:00:00  34 
01/02/2010 00:00:00  0 
01/02/2010 00:00:00  1 
01/02/2010 00:00:00  2 
01/02/2010 00:00:00  3 
01/02/2010 00:00:00  5 
01/02/2010 00:00:00  6 
01/02/2010 00:00:00  7 
01/02/2010 00:00:00  9 
01/02/2010 00:00:00  12 
01/02/2010 00:00:00  14 
01/02/2010 00:00:00  15 
01/02/2010 00:00:00  17 
01/02/2010 00:00:00  21 
01/02/2010 00:00:00  23 
01/02/2010 00:00:00  30 
01/02/2010 00:00:00  34 

など

答えて

5

あなたはあなたに次のLINQ文を使用することができます 'PeriodRecords' という名前の列挙変数にデータベースからレコードを取得したと仮定すると、個々の期間と期間ごとの合計を取得します。

var countsPerPeriod = 
     from row in PeriodRecords  
     group row by row.Period into g 
     select new {Period = g.Key, TotalPeriodCount = g.Group.Sum(row => row.Count)}; 
次のようにあなたは、あなたの新しい「countsPerPeriod」変数を反復処理することができます

foreach(var periodCount in countsPerPeriod) { 
    var period = periodCount.Period; 
    var count = periodCount.TotalPeriodCount; 
} 
+0

こんにちはブライアン、応答に感謝します。私は、成功のアイデアなしでVBに合計セクションを変換しようとしていますか? –

+0

私はそれを理解したことはありません。助けてくれてありがとう –

+0

@Phil、申し訳ありません、ちょうどあなたのメッセージを早く受け取らなかったので、オンラインに戻ってください。問題ありません、あなたはそれを分類してうれしいです。 –