我有一個SQL表如下設計:選擇在哪裏Table.Value ==最大
TableSchedule:
Id
Description
ImportedDate
我可以導入了大量的項目,他們將都具有相同的ImportedDate。
我該如何編寫只抓取最新ImportedDate條目的LINQ查詢?
var ResultSchedule =
from a in Db.TableSchedule
where a.ImportedDate == (Newest?)
我有一個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);
這是一個聰明的解決方案 – 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