2014-05-25 62 views
-1

請告訴我下面的情況。如何爲下面的場景編寫查詢?

表:

Id appName  role Type Status  createdAt 
1 application1 role1 false completed 25/05/2014 12.00.00 
2 application1 role1 true  completed 25/05/2014 11.00.00 
3 application1 role1 true  completed 25/05/2014 11.00.00 
4 application2 role1 true  completed 25/05/2014 11.00.00 
5 application2 role1 false completed 25/05/2014 10.00.00 
在上面的表格

我需要一個像

output: 
Id appName  role Type Status  createdAt 
4 application2 role1 true  completed 25/05/2014 11.00.00 

輸出我不想因爲應用程序1它的類型是虛假和createAt最新。 如果application1類型爲true並且它是最新的,那麼我們應該顯示該記錄。 請告訴我如何將linq中的查詢寫入sql。

關注:最新記錄類型爲false然後不需要顯示匹配記錄。在上面的表中 application1類型是假的,它是最新的,因此不需要顯示1,2,3。 application2類型爲true,並且它是最新的,因此只顯示該記錄4.

+3

請告訴我們你已經嘗試過。 –

回答

0

在2個步驟中執行您的查詢:首先選擇您的密鑰的所有最新記錄。然後從最新記錄中選擇具有正確狀態的記錄。

0
(from d in context.Table 
group d by d.appName into g 
select g.OrderByDescending(gg=>gg.createdAt).Take(1))//should give you latest for each appname 
.Where(dd=>dd.Type == true)//should filter out the ones with Type being False