2016-10-28 19 views
0

このSQLクエリをLINQ構文に変換しようとしていますが、苦労します。 誰かが私を助けることができますか?このSQLクエリをLINQクエリに変換する方法

SELECT * 
FROM 
    (SELECT 
     DESCR, 
     SUM(CONSUMPTIONCOST) AS CUSUMPTIONCOST, 
     SUM(SCHEDULEDREPAIRCOST) AS SCHEDULEDREPAIRCOST, 
     SUM(PALS) AS PALSUM, 
     SUM(UNSCHEDULEDREPAIRCOST) AS UNSCHEDULEDREPAIRCOST, 
     SUM(O_S_Price) AS O_S_PRICE_SUM, 
     SUM(PALS) AS PALS, 
     SUM(CGAI_TOTAL) AS CGAI_TOTAL, 
     SUM(SE_TOTAL) AS SE_TOTAL, 
     SUM(MISCADDER_TOTAL) AS MISCADDER_TOTAL, 
     SUM(CODB_TOTAL) AS CODB_TOTAL, 
     SUM(OS_PRICE_PLUSFACTORS) AS OS_PRICE_PLUSFACTORS, 
     SUM(PALS + O_S_PRICE) AS COST, 
     RANK() OVER(ORDER BY SUM(PALS + O_S_PRICE) DESC) AS COST_RANK 
    FROM 
     jamResult.Parts_Ace 
    GROUP BY 
     DESCR, RUN_NAME) AS X 
WHERE 
    COST_RANK > 0 
    AND COST_RANK < 10 
ORDER BY 
    COST_RANK ASC 
+2

ここで助けが必要な部分とこれまでに試したことについて具体的に説明できますか? – EJoshuaS

+0

問題は 'RANK()'にあって、良いLINQに相当するものがないと思います(エンティティと同等のLINQを持っているかどうかわかりません) –

+1

ようこそ! SQLをポストして変換を求めないでください。少なくともクラスモデルを表示して、ナビゲーションプロパティと関連の多重度を確認します。また、あなた自身の最初の努力を示してください。彼らは、あなたが思うかもしれないよりも、私たちにもっと明らかにします。 –

答えて

0

あなたは0と10(最初の9つの結果は、コストの降順ランク付け - 1〜9のランクを持つもの)の間COST_RANK値を探しているならTake(9)続く、あなたは、LINQでOrderByDescendingを行うことができます結果セットの範囲を狭めることができます。

var result = yourQuery.OrderByDescending(x => x.Cost).Take(9); 
関連する問題