как выбрать данные из двух таблиц и суммировать остаток по дебетовым и кредитным столбцам (php)

Вы скомпилировались с Eclipse? Он использует другой компилятор (не javac). Это не должно приводить к этой ошибке (если все настроено правильно), но вы можете попытаться скомпилировать ее с помощью javac.

Если это устранит проблему, попробуйте проверить, имеет ли Eclipse некоторые неправильные настройки компилятора. В частности, он нацелен на Java 5.

3
задан piet.t 19 March 2019 в 14:13
поделиться

1 ответ

Вы можете объединить таблицы, используя 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;
0
ответ дан Gordon Linoff 19 March 2019 в 14:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: