Мне нужно вычислить fin_sum для visit_numbers и industry_code, но если id в другой таблице, тогда мне нужно исключить записи, у которых есть id в другой таблице, из расчета, но, если id не является esixst в таблице, они должны быть включены.
У меня есть таблица со следующей структурой
create temporary table client_transactions_final
(
id int,
fin_amount decimal (6,2),
ind_code varchar(10),
visit_number int
);
insert into client_transactions_final values
(1, 100, 'Ind 1', 2),
(1, 300, 'Ind 2', 3),
(2, 300, 'Ind 3', 4),
(2, 100, 'Ind 1', 2),
(3, 300, 'Ind 2', 3),
(4, 300, 'Ind 3', 5),
(5, 100, 'Ind 1', 2),
(6, 300, 'Ind 2', 5),
(6, 300, 'Ind 3', 4)
create temporary table term_map
(
id int
);
insert into term_map values
(2),
(4);
из этой таблицы я запускаю выбор, который суммирует сумму по количеству посещений и отраслевому коду
SELECT visit_number,
case when id in (SELECT id FROM term_map) then
--sum(fin_amount) do not include ids from SELECT id FROM term_map into
else
SUM(fin_amount) end revenue
FROM
client_transactions_final
GROUP BY visit_number , ind_code
Как бы то ни было, мне нужно вычислить fin_sum для visit_numbers и industry_code, но если id в другой таблице, тогда мне нужно исключить записи, которые имеют id в другой таблице, из расчета, но, если id не является esixst в таблице, они должны быть включены. Я уже пробовал различные подходы о том, как это сделать, но ни один из них не работает какие-либо идеи, как это сделать?