このクエリ:
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);
予期したエラーが発生します。