Deze vraag:
select sum(amount)
from aaa
where id not in (select id from bbb);
Wordt geïnterpreteerd als:
select sum(aaa.amount)
from aaa
where aaa.id not in (select aaa.id from bbb);
omdat bbb.id
bestaat niet. Bij het schrijven van SQL raad ik u aan altijd tabelaliassen te gebruiken. De vraag die je dacht te schrijven:
select sum(aaa.amount)
from aaa
where aaa.id not in (select bbb.id from bbb);
de fout zou genereren die u verwacht.