2017-12-14 17 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 

しかし、両方の列の合計が1つのレコードに必要です。

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_私の最初の答えがどのように:-) –

関連する問題