我寫過這樣的查詢。它正在工作,並給我我想要的結果。
我有一個SELECT
查詢來獲取CAR_AMOUNT
和HOTEL_AMOUNT
。
但是,我不得不重複同樣的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 2012-03-30 12:45:50
對不起...忘了提及它..它的Oracle .... – Andromeda 2012-03-30 12:46:46
爲什麼你不在應用程序級別上進行總結,我希望在你的情況下是可能的。 – 2012-03-30 12:47:44