У меня есть запрос, который вычисляет счет-фактуру из таблицы invoice
. В этом счете есть налоги, связанные с ним, расположенные в таблице tax_recv
. tax_recv
будет иметь несколько строк, привязанных к счету в таблице invoice
.MySQL: JOIN сумма нескольких значений
У меня есть запрос, который вычисляет счета за 12 месяцев и заказывает их по их соответствующей дате. Вот запрос:
SELECT
invoice_amount + late_fee + SUM(c.tax) AS amount, tollfree_json, date_generated
FROM
invoices as i
LEFT JOIN
csi_tax_recv as c
ON
c.invoice_number = i.id
WHERE
DATE_FORMAT(date_generated,'%Y-%m') < DATE_FORMAT(NOW(),'%Y-%m')
AND
DATE_FORMAT(date_generated,'%Y-%m') >= DATE_FORMAT(NOW() - INTERVAL 12 MONTH,'%Y-%m')
ORDER BY
date_generated
Единственная проблема с этим запросом - это только возврат одной строки? Не уверен, почему именно. В тот момент, когда я удаляю левое соединение и SUM (c.tax) (что, по-моему, вызывает проблему), запрос работает отлично.
Конечный результат должен выглядеть следующим образом:
invoice_amount + total_taxes_for_invoices, tollfree_json, date_generated
Приветствия.
Похоже, вам не хватает предложение GROUP BY. – Vyskol