2013-11-12 2 views
5
select description, min(date), max(date), sum(value1), sum(value2) from table 
where description = 'Axxx' and filter = 'L' 
group by description 

Как выполнить этот запрос, используя Linq/C#?Выберите Min и Max LINQ

+0

Вы уже пробовали что-нибудь? –

+0

Да, я просто не могу отфильтровать минимальную и максимальную дату. –

ответ

8

Не тестировался, но должно работать:

table 
    .Where(x=>x.description=="Axxx" && x.filter=="L") 
    .GroupBy(x=>x.description) 
    .Select(x=>new { 
     description=x.Key, 
     mindate=x.Min(z=>z.date), 
     maxdate=x.Max(z=>z.date), 
     sumvalue1=x.Sum(z=>z.value1), 
     sumvalue2=x.Sum(z=>z.value2) 
    }); 
+0

Tks Павел Кутаков, это сработало! –

0

Это должно работать

var q = from s in db.table 
      where description = 'Axxx' and filter = 'L' 
      group s by s.description into g 
      select new {YourDescription = g.description, MaxDate = g.Max(s => s.date) } 

Этот ответ может помочь, тоже .. here

0

что-то, как это должно работать. не проверено

var q = from b in table 
      group b by b.Owner into g 
      where description = 'Axxx' 
      select new 
         { 
          description = g.description , 
          date = g.min(), 
          date = g.max(), 
          value1= g.Sum(item => item.value1), 
          value2= g.Sum(item => item.value2), 
         };