我有一个具有以下设计的SQL表:
TableSchedule:
Id
Description
ImportedDate
我可以导入大量的项目,它们都具有相同的ImportedDate。
如何编写仅捕获具有最新ImportedDate的条目的LINQ查询?
var ResultSchedule =
from a in Db.TableSchedule
where a.ImportedDate == (Newest?)
答案 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))
);