Я подозреваю, что вы хотите удалить столбцы i.invoice_date
и ili.account_number
из предложения group by
. В противном случае вы получите одну запись на отдельные значения этих трех столбцов, что, кажется, не то, что вам нужно.
Соответственно, вы должны переместить фильтр по датам в предложение where
:
SELECT
gl.account_description AS invoice_total,
COUNT(ili.invoice_id) AS total_invoice,
SUM(ili.line_item_amount) AS total_convert
FROM general_ledger_accounts gl
INNER JOIN invoice_line_items ili
ON gl.account_number = ili.account_number
INNER JOIN invoices i
ON ili.invoice_id = i.invoice_id
WHERE
i.invoice_date >= '2014-04-01'
AND i.invoice_date < '2014-07-01'
GROUP BY gl.account_description
HAVING COUNT(ili.account_number) > 1
ORDER BY g1.account_description DESC;
Обратите внимание, что я изменил условие для дат, чтобы использовать полуоткрытые интервалы: таким образом, вам не нужно беспокоиться о том, будет ли в прошлом месяце 30 или 31 день (или 28, или 29). .); это также будет плавно обрабатывать временную часть дат, если таковые имеются.