Выберите Где Таблица. Значение == Максимум - PullRequest
3 голосов
/ 06 октября 2010

У меня есть таблица SQL со следующим дизайном:

TableSchedule:
Id
Description
ImportedDate

Я могу импортировать большое количество элементов, и они будут иметь одинаковую ImportedDate.

Как мне написатьLINQ-запрос, который захватывает только записи с самой последней ImportedDate?

var ResultSchedule =
    from a in Db.TableSchedule
    where a.ImportedDate == (Newest?)

Ответы [ 5 ]

1 голос
/ 06 октября 2010

Попробуйте

1002 *
0 голосов
/ 06 октября 2010

В свободном синтаксисе:

var ResultSchedule = 
    Db.TableSchedule.Where(
       a => a.ImportedDate.Equals(Db.TableSchedule.Max(b => b.ImportedDate))
    );
0 голосов
/ 06 октября 2010

Вы можете сгруппировать результаты и упорядочить их по дате:

var ResultsSchedule = Db.TableSchedule.
                      GroupBy(a => a.ImportedDate).
                      OrderByDescending(g => g.Key).
                      FirstOrDefault().
                      Select(g => g);
0 голосов
/ 06 октября 2010

Как насчет этого:

var ResultSchedule = from a in Db.TableSchedule
                     let max = Db.TableSchedule.Max(i => i.ImportedDate)
                     where a.ImportedDate == max
                     select a;
0 голосов
/ 06 октября 2010

Попробуйте:

  Select * From Table
  Where ImportedDate  = 
     (Select max(ImportedDate) From Table)

Если вам нужна последняя запись для каждого [что-то], например, скажем, для каждого отдельного клиента, то сделайте запрос коррелированным

  Select * From Table t
  Where ImportedDate  = 
     (Select max(ImportedDate) 
      From Table
      Where Customer = t.Customer)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...