2017-12-14 28 views
0
SELECT 
    td.EstimatedTotalAmount_Car, 
    AVG(tdca.EstimatedTotalAmount) AS policy_saving 
FROM Company_Reporting td 
INNER JOIN Company_Car_Archive tdca 
    ON tdca.VehClassSize = td.VehClassSize_Car 
    AND tdca.VendorName != td.VendorName_Car 
    AND tdca.USER_SEARCH_ID = td.SEARCH_ID_Car 
WHERE td.Company_id = 12 
AND td.CHECKOUT_STS = 1 
AND td.Check_Type = 3 
AND td.policy_violate_flag = 0 
GROUP BY td.ID 

위의 SQL은 아래 출력을 반환합니다.조인을 사용하는 열의 합

 
EstimatedTotalAmount_Car policy_saving 
55.86      75.197856 
55.86      75.197856 
170.83      244.070000 
143.66      132.120000 
171.96      131.007272 
222.66      226.162725 
97.03      79.554001 
56.61      74.213999 

하지만 단일 레코드에 두 열의 합이 필요합니다.

sum(EstimatedTotalAmount_Car): 974.47 sum(policy_saving):1037.523709 

어떻게하면됩니까?

답변

1

당신은 그냥 현재 쿼리를 포장

select sum(EstimatedTotalAmount_Car), 
sum(policy_saving) 
from(
    /** your query */ 
) t 
1

처럼 외부 쿼리에서이 작업을 수행하고 모두 열 요약 할 수 있습니다

SELECT 
    SUM(EstimatedTotalAmount_Car) AS grand_total, 
    SUM(policy_saving) AS sum_policy_saving 
FROM 
(
    SELECT 
     td.EstimatedTotalAmount_Car, 
     AVG(tdca.EstimatedTotalAmount) AS policy_saving 
    FROM Company_Reporting td 
    INNER JOIN Company_Car_Archive tdca 
     ON tdca.VehClassSize = td.VehClassSize_Car AND 
      tdca.VendorName != td.VendorName_Car AND 
      tdca.USER_SEARCH_ID = td.SEARCH_ID_Car 
    WHERE 
     td.Company_id = 12 AND 
     td.CHECKOUT_STS = 1 AND 
     tgd.Check_Type = 3 AND 
     td.policy_violate_flag = 0 
    GROUP BY td.ID 
) t; 
+0

다시 ... 거의 같은 시간에 같은 방법도 별명도 같은입니다 :) –

+1

@MKhalidJunaid 내가 전에도 게시 할 수 있었지만 _bufugly_ 내 초기 대답이 어떻게 되길 바라나? :-) –