Я сделал базовый отчет Firebird, чтобы обзвонить всех должников и транзакции. Отчет выглядит следующим образом.
SELECT
POSPAY.TXNO,
DEBTORS.COMPANY,
POSPAY.AMOUNT,
POSINVTRANS.TXDATE
FROM
POSPAY
INNER JOIN DEBTORS ON (POSPAY.ACCTNUMBER = DEBTORS.ACCOUNT)
INNER JOIN POSINVTRANS ON (POSPAY.TXNO = POSINVTRANS.TXNO)
WHERE
PAYMNTTYPID = '7'
and
weekly = :weekly and
txdate >= :fromdate and
txdate <= :todate
Это работает правильно и выводит имя должника, TXNO, TXDATE, AMOUNT.
Теперь я хочу написать аналогичный отчет, но мне нужно сгруппировать должников и указать итоги по транзакциям, т.е. мне нужно выходное имя должника (если ДЖОН дважды, нужно указать один раз), общая сумма (сумма транзакций Джона)
Мне все еще нужно внутреннее соединение по должникам, но уже не по posinvtrans, я думал, что это должно выглядеть примерно так
SELECT
POSPAY.TXNO,
DEBTORS.COMPANY,
POSPAY.AMOUNT
FROM
POSPAY
INNER JOIN DEBTORS ON (POSPAY.ACCTNUMBER = DEBTORS.ACCOUNT)
WHERE
PAYMNTTYPID = '7'
and
weekly = :weekly and
txdate >= :fromdate and
txdate <= :todate
Group by DEBTORS.COMPANY
но не повезло, получайте ошибки при Группировке по 'недопустимому выражению в списке выбора (не содержащему ни в агрегатной функции, ни в GROUP BY CLAUSE)' какие-нибудь предложения?