Denna fråga:
select sum(amount)
from aaa
where id not in (select id from bbb);
Tolkas som:
select sum(aaa.amount)
from aaa
where aaa.id not in (select aaa.id from bbb);
eftersom bbb.id
existerar inte. När du skriver SQL föreslår jag att du alltid använder tabellalias. Frågan som du trodde att du skrev:
select sum(aaa.amount)
from aaa
where aaa.id not in (select bbb.id from bbb);
skulle generera det fel du förväntar dig.