私のデータベースには、次のようなエントリを持つ販売テーブルがあります。
_____________________________________
| id | title_id | qty |
-------------------------------------
| 0 | 6 | 10 |
-------------------------------------
| 1 | 5 | 5 |
-------------------------------------
| 2 | 6 | 2 |
-------------------------------------
Title_idは、次のようなTitlesテーブルを指す外部キーです。
_____________________________________
| id | title_id | title |
-------------------------------------
| 0 | 5 | Soda |
-------------------------------------
| 1 | 6 | Coffee |
-------------------------------------
販売された上位5つの製品を見つけたいのですが、これは、販売テーブルに入力されたすべての製品の数量値を計算してから、結果を数量順に降順に並べ、選択を5に制限する必要があることを意味します。
ただし、私はC#ASP.NETを初めて使用し、SQLを少し使用したばかりです。LINQでこれを行う方法がわかりません。これはこれまでの私のコードです:
var getIds = (from sale in db.sales
join tit in db.titles on sale.title_id equals tit.title_id
group sale by sale.qty into result
orderby result.Sum(i => i.qty) descending
select new Publication
{
PubID = sales.title_id, Title = tit.title
}
).Take(5);