Если бы я следовал за вами правильно, вы могли бы подойти к этому с условной агрегацией . Вы можете использовать конструкцию CASE
в агрегатной функции SUM
, чтобы проверить, к какому отделу принадлежит текущая запись, и выполнить вычисления соответственно.
SELECT
o.evt_id,
event_desc,
SUM(CASE
WHEN order_department = 'FAB' THEN order_total * 0.17
ELSE order_total END
) AS Total
FROM orders o
INNER JOIN events e On o.evt_id = e.events_id
WHERE evt_start_date BETWEEN '2019-01-01' and '2019-01-31'
GROUP BY
o.evt_id,
event_desc
Примечание: большинство столбцов в вашем запросе не имеют префикса таблицы, поэтому неясно, из какой они таблицы. Я добавил их, когда можно было сделать обоснованное предположение из вашего кода SQL, и я настоятельно рекомендую вам добавить префиксы ко всем остальным.