2014-05-14 4 views
0

필자는 어떻게 할 수 있는지, 또는 다시 계산할 필요없이 각 레코드에 대해 총 값이 반환되도록 즉시 반환 된 값을 합계로 계산할 수 있는지 파악하려고합니다.오라클 SUM 계산 된 값

쿼리에 모두 올바르게 계산되고 정수 값이 반환되는 하위 쿼리가 여러 개 있습니다.이 값을 Total 열에 즉시 추가 할 수있는 방법을 찾고 있습니다.

SELECT (SELECT value FROM ....) AS NUM_1 
, (SELECT value FROM ....) AS NUM_2 
, (SELECT value FROM ....) AS NUM_3 
, SUM(NUM_1 + NUM_2 + NUM_3) AS TOTAL 
FROM DUAL; 

내가 달성하기 위해 찾고 있어요 출력입니다 :

NUM_1 | NUM_2 | NUM_3 | Total 
============================= 
3  | 4  | 3  | 10 
당신은 당신의 (SELECT value FROM ....) 쿼리 그렇지 않으면 오류가 발생합니다 정확히 하나의 행을 반환 있는지 확인해야합니다

답변

2
with numbers as (
    SELECT (SELECT value FROM ....) AS NUM_1, 
     (SELECT value FROM ....) AS NUM_2, 
     (SELECT value FROM ....) AS NUM_3 
    FROM DUAL; 
) 
select num_1, 
     num_2, 
     num_3, 
     num_1 + num_2 + num_3 as total 
from numbers; 

"단일 행 하위 쿼리는 여러 행을 반환합니다." 이중 후에 다음이 NUM_1 AS ( SELECT (FROM SELECT 값 ...), (FROM SELECT 값으로 숫자

를 작동으로 전체 실행 ...;

-1

제거 세미콜론() .) NUM_2, (FROM SELECT 값 ....) AS NUM_3 AS DUAL ) 선택 NUM_1, NUM_2, num_3, FROM NUM_1 번호에서 총 같은 NUM_2 + + num_3;