以下是示例数据:
id Data Time
-- ---- --------
1 10 12:08:00
1 15 12:09:05
2 8 12:09:15
3 7 12:10:35
1 11 12:13:05
2 15 12:13:35
1 8 12:17:15
3 10 12:17:55
我需要两个查询的帮助:
选择输入ID的最新记录。因此对于id = 1:
,结果应如下所示id Data Time
-- ---- --------
1 8 12:17:15
仅为一个ID选择所有数据行。所以结果应该是:
id Data Time
-- ---- --------
1 10 12:08:00
1 15 12:09:05
1 11 12:13:05
1 8 12:17:15
答案 0 :(得分:1)
对于第一个查询,您可以对数据进行排序和分组,然后为每个组选择最后一个。
var set1 = items.OrderBy(i => i.Date)
.GroupBy(i => i.Id)
.Select(g => g.LastOrDefault())
.ToArray();
第二个是简单的where语句。
var set2 = items.Where(i => i.Id == 1).ToArray();
答案 1 :(得分:0)
将sql中的“timefield”替换为时间字段的名称(以及带有表名称的“tbl”):
select *
from tbl
where timefield = (select max(x.timefield) from tbl x where x.id = tbl.id)