选择Where Table.Value == Maximum

时间:2010-10-06 18:18:14

标签: c# sql linq

我有一个具有以下设计的SQL表:

TableSchedule:
Id
Description
ImportedDate

我可以导入大量的项目,它们都具有相同的ImportedDate。

如何编写仅捕获具有最新ImportedDate的条目的LINQ查询?

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

5 个答案:

答案 0 :(得分:1)

试试这个

var ResultSchedule = 
from a in Db.TableSchedule 
where a.ImportedDate == (from item in DB.TableSchedule Select item.ImportedDate).Max() 

答案 1 :(得分:0)

试试这个:

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

如果您需要每个[某些]的最新记录,例如,对于每个客户,请将siubquery 相关

  Select * From Table t
  Where ImportedDate  = 
     (Select max(ImportedDate) 
      From Table
      Where Customer = t.Customer)

答案 2 :(得分:0)

这个怎么样:

var ResultSchedule = from a in Db.TableSchedule
                     let max = Db.TableSchedule.Max(i => i.ImportedDate)
                     where a.ImportedDate == max
                     select a;

答案 3 :(得分:0)

您可以对结果进行分组并按日期排序:

var ResultsSchedule = Db.TableSchedule.
                      GroupBy(a => a.ImportedDate).
                      OrderByDescending(g => g.Key).
                      FirstOrDefault().
                      Select(g => g);

答案 4 :(得分:0)

用流利的语法:

var ResultSchedule = 
    Db.TableSchedule.Where(
       a => a.ImportedDate.Equals(Db.TableSchedule.Max(b => b.ImportedDate))
    );