2014-03-03 77 views
-5

选择所有的数据和最后一行下面是样本数据:LINQ查询从表

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 
    
+1

您好。当您展示自己的努力并尝试自行解决问题时,您的问题将会得到更好的接受,并指出您的问题在哪里。看来,否则,你要求人们只为你提供代码......这不是StackOverflow的工作方式。 –

+0

到目前为止你写了些什么?你会得到什么结果或错误?编号为2的 –

+0

我有这个查询是类似于你:var query =(从_db.something其中data.Id == 1选择数据中的数据).ToList();但我多次获得相同的对象。 – AM0

回答

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(); 
+0

为2我有这个查询是类似于你:var query =(从_db.something中的数据 where data.Id == 1 select data).ToList();但我多次获得相同的对象。 – AM0

+0

我编辑了我的问题。 – AM0

0

替换下面的时间字段的名称(“TBL”与表的名称),在SQL“timefield”:

select * 
    from tbl 
where timefield = (select max(x.timefield) from tbl x where x.id = tbl.id)