私は問題があります。私は4つのテーブルを持っています:
Invoice_Payment、請求書、クライアント、およびカレンダー
基本的に、私は以下のクエリを持っていますが、これはうまく機能しますが、date_due のない月は返されません。IE では、date_due のある月のみが返されます。
注: カレンダーの表は、1 年の毎日を単純にリストしたものです。単一の col 呼び出し date_field が含まれています
データベース: http://oberto.co.nz/jInvoice.txt
期待される出力: 以下の現在のクエリは、次のようなものを返します。
month total
August 5
September 0
October 196
November 205
December 214
January 229
9 月が返されないことに注意してください。これは、テーブル 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)
どんな助けでも感謝します。