У меня проблема.У меня есть 4 таблицы:
Invoice_Payment, Invoice, Client и Calendar
По сути, у меня есть следующий запрос, который работает хорошо, за исключением месяцев без date_due, которые не возвращаются.IE будут возвращены только месяцы с date_due.
Примечание: таблица календаря просто перечисляет каждый день года.Он содержит один столбец вызова date_field
База данных: http://oberto.co.nz/jInvoice.txt
Ожидаемый результат: мой текущий запрос, приведенный ниже, выдаст что-то вроде:
month total
August 5
September 0
October 196
November 205
December 214
January 229
Обратите внимание, как сентябрьне возвращается?Это потому, что таблица Invoice_Payment не имеет записи date_due
Я думаю, что мне нужно использовать левое соединение и присоединиться к таблице календаря с помощью чего-то вроде: LEFT JOIN Calendar ON Invoice_Payments.date_paid = Calendar.date_field.Но мне не повезло
SELECT MONTHNAME(Invoice_Payments.date_paid) as month, SUM(Invoice_Payments.paid_amount) AS total
FROM Invoice, Client, Invoice_Payments
WHERE Client.registered_id = 1
AND Client.id = Invoice.client_id
And Invoice.id = Invoice_Payments.invoice_id
AND date_paid IS NOT NULL
GROUP BY YEAR(Invoice_Payments.date_paid), MONTH(Invoice_Payments.date_paid)
Любая помощь приветствуется.