2017-02-09 1 views
-5

어떻게 SQL 쿼리를 linq (C#)로 변환 할 수 있습니까?SQL 쿼리를 Linq로 변환하는 방법

SELECT o.Week, 
     (select sum(Positive-Negative) 
     FROM tbl i 
     where i.Week <= o.Week 
     ) 
    FROM tbl o 

이 LINQ 코드는

var values = weeklySatisfaction.Select(o => new 
    { 
    Week = o.Week, 
    Net = weeklySatisfaction 
       .Where(i => i.Week < o.Week) 
       .Select(x => x.Positive - x.Negative).Sum() 
    }); 

즐길 수

작동합니다 나는 시도하지만 난이 값

var result = from i in weeklySatisfaction 
from o in weeklySatisfaction 
where i.Week <= o.Week 
select new 
{ 
    Week = o.Week, 
    Net = i.Positive - i.Negative 
}; 
+0

원본 SQL 쿼리는 "SELECT' 절 안에서 다른 쿼리와 같은"상관 하위 쿼리 "를 사용합니다. 비효율적입니다. 대신 JOIN 또는 다른 방법을 사용해야합니다. – Dai

+1

원래 쿼리에서 실행중인 합계를 계산하는 데 매우 비효율적 인 방법 - SQL에서보다 효율적인 방법은 'OVER'를 사용하는 것이지만 Linq는이를 직접 지원하지 않으며 Linq에서 누적 합계를 계산하는 방법이 매우 다릅니다 (http : /stackoverflow.com/questions/1834753/linq-to-sql-and-a-running-total-onordord-results – Dai

+0

... 결론적으로 : 귀하의 SQL 쿼리는 Linq에게 직접 번역 할 수 없으므로 어려움이 설명됩니다 – Dai

답변

0

을 요약하는 방법을 잘 모르겠습니다!

관련 문제