이렇게 쿼리를 작성했습니다. 그것은 내가 원하는 결과를주고 일하고 있습니다.
CAR_AMOUNT
및 HOTEL_AMOUNT
을 얻으려면 SELECT
쿼리가 있습니다.
그러나 동일한 SELECT
쿼리를 모두 수행하여 SUM
을 가져와야합니다. 별칭 이름을 사용할 수 없습니다. 어떻게 이것을 피할 수 있습니까?SELECT 하위 쿼리를 반복하지 않고이 쿼리를 다시 작성하는 방법
SELECT B.EMPLOYEE_ID,
(select SUM(AMOUNT)
FROM travel_reimbursements_items
WHERE type = 'CAR'
AND travel_request_no = B.travel_request_no
AND STATUS='APPROVED') as CAR_AMOUNT,
(select SUM(AMOUNT)
FROM travel_reimbursements_items
WHERE type = 'HOTEL'
AND travel_request_no = B.travel_request_no
AND STATUS='APPROVED') as HOTEL_AMOUNT,
NVL((select SUM(AMOUNT)
FROM travel_reimbursements_items
WHERE type = 'CAR'
AND travel_request_no = B.travel_request_no
AND STATUS='APPROVED'),0)
+NVL((select SUM(AMOUNT)
FROM travel_reimbursements_items
WHERE type = 'HOTEL'
AND travel_request_no = B.travel_request_no
AND STATUS='APPROVED'),0) as TOTAL
FROM TRAVEL_REQUEST_ITEM A
LEFT OUTER JOIN TRAVEL_REQUEST B
ON (B.TRAVEL_REQUEST_NO= A.TRAVEL_REQUEST_SR_NO)
SQL의 어떤 맛? SQL Server, Oracle ...? – Fionnuala
죄송합니다 ... 오라클을 언급하는 것을 잊어 버렸습니다. ... – Andromeda
어플 리케이션 레벨에서 합계를 만들어 보시지 않으시겠습니까? –