1

ヒット数が最も多い最初の行を返し、その後に日付の説明でソートされた残りの行を返すLINQクエリを考え出そうとしています。これはSQLで実行できますか、それとも2つの個別のクエリが必要ですか?私のテーブルはこれに似ています。

バックエンド:SQL Server 2008

テーブル名:製品

ProductID ProductName Hits DateAdded

1コーヒー6005/2/20122
バニラ8004/19/20123
チョコレート30003/25/20124
オレオ2002/10/20125
ヒース2505/13/20126
シャーベット5504/20/20127
モカ20002012年3月22日

クエリの結果をそのまま返してほしい:(最初にチョコレート-ヒットに基づいて、残り-日付の降順で並べ替える)

3チョコレート30002012年3月
25日5ヒース2502012年5月13
日1コーヒー6002012年5月2
日6シャーベット5502012年4月20日
2バニラ8002012年4
月19日7モカ20002012年3月22
日4オレオ2002012年2月10日

どんな助けでも大歓迎です。私はLINQの新人です。

ありがとう!

4

1 に答える 1

1
int maxHits = Products.Max( p => p.Hits );

var query = Products.OrderByDescending( 
                p => p.Hits == maxHits ).ThenByDescending( p => p.DateAdded );
于 2012-05-16T17:24:55.777 に答える