2016-10-28 4 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가 작동하는 LINQ를 전혀 가지고 있는지 모르겠습니다). –

+1

Welcome to Stack Overflow! 절대로 SQL을 게시하고 변환을 요청하지 마십시오. 네비게이션 속성과 연관성의 다양성을 볼 수 있도록 최소한 클래스 모델을 보여줍니다. 또한 자신의 첫 번째 노력을 보여주십시오. 그들은 당신이 생각하는 것보다 우리에게 더 많은 것을 분명히합니다. –

답변

0

는 0과 10 (첫 번째 9 개 결과 비용으로 내림차순으로 순위가 - 1부터 9까지의 순위에있는 사람) 사이의 COST_RANK 값을 찾는 경우 Take(9) 다음, 당신은 LINQ에서 OrderByDescending을 수행 할 수 있습니다 결과 집합의 범위를 좁히는 방법 :

var result = yourQuery.OrderByDescending(x => x.Cost).Take(9); 
관련 문제