Сумма столбцов с использованием соединения

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

Как я могу это достичь?

Теги:
sum
average

2 ответа

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 Я мог бы даже написать перед вами, но вопрос был в том, насколько я хочу, чтобы мой первоначальный ответ был :-)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню