2011-06-29 184 views
1

我有下面的Linq查詢返回的數據,但我需要聚合的列在期間和總計計數列組。Linq to Entities Group 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

假設你已經檢索到與數據庫的記錄到一個枚舉變量命名爲 'PeriodRecords' 你可以使用下面的LINQ語句得到單個時期和每個時期的總數。

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

@菲爾,對不起,剛回到網上,所以沒有得到您的消息。沒問題,很高興你把它分類。 –