2017-01-10 9 views
0

私は列の値の合計でソートされたデータを抽出するSQLクエリを持っています。私はCustomerPointという名前のテーブルを持っていて、それはCusTomerIDPointという名前の2つのカラムを持っています。最高のSUMポイントの人を抽出したいと思います。ここに私のSQLクエリがあり、正しく動作します。しかし、私はLambdaExpressionsまたはLinqクエリでEF6.3で実行する必要があります。MSSQLクエリをラムダ式またはLINQに変換します。グループ化合計とソート

SELECT SUM(Point) AS POINTS, CustomerID FROM CustomerPoint AS POINTS GROUP BY CustomerID ORDER BY POINTS 

ありがとうございました!このような

答えて

2

何か:

from p in context.Points 
group p by p.CustomerID into gr 
select new { CustomerID = gr.Key, POINTS = gr.Sum(c=>c.Point) } into re 
orderby re.POINTS 
1

これを試してみてください。多様性のための

from cp in db.CustomerPoints 
Group cp by cp.CusTomerID into cpg 
select new { CusTomerID = cpg.Key, Points = cpg.Sum(c => c.Point)} 
orderby cpg.Points 
1

ラムダ形式:

var query = youContext.CustomerPoints 
      .GroupBy(x => x.CustomerID) 
      .Select(x => new { Points = x.Sum(y => y.Point), 
           CustomerID = x.Key }) 
      .OrderBy(x => x.Points); 
関連する問題