Тази заявка:
select sum(amount)
from aaa
where id not in (select id from bbb);
Интерпретира се като:
select sum(aaa.amount)
from aaa
where aaa.id not in (select aaa.id from bbb);
защото bbb.id
не съществува. Когато пишете SQL, предлагам винаги да използвате псевдоними на таблици. Заявката, която мислехте, че пишете:
select sum(aaa.amount)
from aaa
where aaa.id not in (select bbb.id from bbb);
ще генерира грешката, която очаквате.