2010-03-05 3 views
1

Если у меня есть следующие поля в таблице под названием DailyLeaveLedgerLinq2Sql -Как написать группу по запросу

  • LeaveDate
  • LeaveType
  • AmountPaid

Как написать Linq2SQL группу по запросу, чтобы получить этот результат, где он группируется по годам и Leavetype и дает столбец из дней отпуска и сумму уплаченной суммы? Сортируется в порядке убывания года.

2010 Annual 10 5,000.00 

2010 Personal 3 1,500.00 

2009 Annual 15 10,000.00 

2009 etc 

ответ

2

Опираясь на результате Axarydax»:

var result = DailyLeaveLedgers.OrderBy(p=>p.LeaveDate.Year) 
           .GroupBy(p => new { 
            Year = p.LeaveDate.Year, 
            Type = p.LeaveType 
           }) 
           .Select(g => new { 
            Year = g.Key.Year, 
            Type = g.Kye.Leave, 
            Count = g.Count(), 
            Sum = g.Sum(x => x.AmmountPaid) 
           }); 

result теперь держит перечень объектов из запрошенных данных.

+0

избили меня;), поэтому я не буду обновлять свой пост – Axarydax

2

DailyLeaveLedgers.OrderBy (р => p.LeaveDate.Year) .GroupBy (р => {новый p.LeaveDate.Year, p.LeaveType});

+0

Спасибо, как я могу оплатить сумму и сумму? – Malcolm

+0

+1 для комбинированного группового ключа. – AxelEckenberger