Вы скомпилировались с Eclipse? Он использует другой компилятор (не javac). Это не должно приводить к этой ошибке (если все настроено правильно), но вы можете попытаться скомпилировать ее с помощью javac.
Если это устранит проблему, попробуйте проверить, имеет ли Eclipse некоторые неправильные настройки компилятора. В частности, он нацелен на Java 5.
Вы можете объединить таблицы, используя union all
. В MySQL 8+ вы можете рассчитать последний столбец, используя кумулятивные суммы:
select id, date, debit, credit,
sum( coalesce(debit, 0) - coalesce(credit, 0) ) over (order by date) as balance
from ((select id, date, debit, null as credit
from debit
) union all
(select id, date, null as debit, credit
from credit
)
) b
order by date;
В более ранних версиях вы можете использовать переменные для расчета:
select b.*,
(@b := @b + coalesce(debit, 0) - coalesce(credit, 0)) as balance
from (select id, date, debit, credit
from ((select id, date, debit, null as credit
from debit
) union all
(select id, date, null as debit, credit
from credit
)
) b
order by date
) b cross join
(select @b := 0) params
order by date;