选择在哪里Table.Value ==最大
问题描述:
我有一个SQL表如下设计:选择在哪里Table.Value ==最大
TableSchedule:
Id
Description
ImportedDate
我可以导入了大量的项目,他们将都具有相同的ImportedDate。
我该如何编写只抓取最新ImportedDate条目的LINQ查询?
var ResultSchedule =
from a in Db.TableSchedule
where a.ImportedDate == (Newest?)
答
试试这个:
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)
答
您可以将结果,责令按日期:
var ResultsSchedule = Db.TableSchedule.
GroupBy(a => a.ImportedDate).
OrderByDescending(g => g.Key).
FirstOrDefault().
Select(g => g);
+0
这是一个聪明的解决方案 – sooprise 2010-10-06 18:35:00
答
用流利的语法:
var ResultSchedule =
Db.TableSchedule.Where(
a => a.ImportedDate.Equals(Db.TableSchedule.Max(b => b.ImportedDate))
);
为什么LINQ?这应该真的在数据库服务器上处理。 – 2010-10-06 18:23:04
@David Lively - 它将在服务器上进行处理,假设他正在使用带有linq提供程序的ORM而不是对象。 – Lee 2010-10-06 18:27:08