0

いくつかの記録を持っています

id     title     date
1      aaa       2005
2      bbb       2003
3      aaa       2007
4      ccc       2005
5      ccc       2009

Date is max でレコードを取得するためにクエリを実行する必要があります

id     title     date
2      bbb       2003
3      aaa       2007
5      ccc       2009 

クエリ:

select * 
from Table 
where Table.date = (SELECT Max(date) 
                    FROM Table temp 
                    WHERE temp.title = Document.title)

SQL クエリがありますが、このアクションには Linq クエリが必要です

4

2 に答える 2

0

GroupByタイトル、日付の降順でグループの列挙を並べ替え、最初のアイテムを選択します。このようなもの:

db.EntityName.GroupBy( en => en.title ).Select( g => g.OrderByDescending( en => en.date ).First() )
于 2013-10-04T20:22:48.790 に答える
0

このようなものが動作するはずです (C#):

var results = 
    from x in db.table
    group x by x.title into g
    select g.OrderByDescending(x => x.date)
            .First();

適切なページングを行うには、次のようにクエリ全体でSkip/を呼び出す必要があります。Take

var results = 
    (from x in db.table
     group x by x.title into g
     select g.OrderByDescending(x => x.date)
             .First())
    .Skip(0)
    .Take(10);
于 2013-10-04T20:21:23.067 に答える