2013-06-03 2 views
0

24 개의 행을 반환하는 쿼리가 있습니다. 나는의 SUMSUM 다음 12 index으로 나누고 싶다. 내가 ROW_NUMBER 같은이 사용하지만 필터링 할 수 없습니다 row. 내가 어떻게 할 수 있니?두 개의 간격으로 두 SUM을 나눕니다.

SELECT ROW_NUMBER() OVER(ORDER BY [Year] DESC,[Month] DESC) AS Row,[Year], [Month], 
    PCode_9, [Index] 
FROM tbl08 
WHERE PCode = @Code AND 
    (([Year] * 12 + [Month]) <= @CurrentYearMonth) AND 
    (([Year] * 12 + [Month]) >= @FCurrentYearMonth) AND row > 12 <-- ERROR 
ORDER BY [Year] DESC,[Month] DESC 

감사

답변

1

귀하의 요청이

Select t.*,(Sum(Case when row<=12 then Index else 0 End)/ 
Sum(Case when row>12 then Index else 0 End)) as Result from 
(
SELECT ROW_NUMBER() OVER(ORDER BY [Year] DESC,[Month] DESC) AS Row,[Year], [Month], 
PCode_9, [Index] 
FROM tbl08 
WHERE PCode = @Code AND 
(([Year] * 12 + [Month]) <= @CurrentYearMonth) AND 
(([Year] * 12 + [Month]) >= @FCurrentYearMonth) AND row > 12 <-- ERROR 
ORDER BY [Year] DESC,[Month] DESC 
) t 
처럼 24 rowsTry을 반환하기 때문에
관련 문제