Linq to Entities Group By & Sum - PullRequest
       7

Linq to Entities Group By & Sum

1 голос
/ 29 июня 2011

У меня есть запрос Linq ниже, который возвращает данные, но мне нужно объединить столбцы для группировки по столбцам Period и 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

ДАННЫЕ

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

и т. Д.

1 Ответ

5 голосов
/ 29 июня 2011

Предполагая, что вы извлекли свои записи из базы данных в перечисляемую переменную с именем '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)};

Затем вы можете перебрать новую переменную counttsPerPeriod следующим образом:

foreach(var periodCount in countsPerPeriod) {
    var period = periodCount.Period;
    var count  = periodCount.TotalPeriodCount;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...