2014-03-03 73 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)