送信されたメールを追跡するテーブルがあります。とても簡単です。
ID | 日時| Eメール| 件名| メッセージ
私は数年前からデータを収集しています。テーブルにエントリがない日もあります。
query1:
SELECT COUNT(ID) FROM emails
WHERE DATE(datetime) >= 'XXXX-XX-XX'
AND DATE(datetime) is <= 'ZZZZ-ZZ-ZZ'
GROUP BY DATE(datetime)
次に、いくつかのphpを使用して、XXXXとYYYYの両方について1年前に取得し、最初のクエリと同じ2番目のクエリを実行します...
query2:
SELECT COUNT(ID) from emails
WHERE DATE(datetime) >= 'XXXX-XX-XX'
AND DATE(datetime) is <= 'ZZZZ-ZZ-ZZ'
GROUP BY DATE(datetime)
グラフパッケージを使用して、ある日付範囲で取得した電子メールの数を比較し、1年前に同じ範囲で取得した電子メールの数をオーバーレイします。これは現在2つのクエリであり、結果をグラフ化しています。
問題は、mysqlが問題の日に2011年の電子メールを持っていないが、同じ日に2012年にいくつかの電子メールを持っている場合です。
結果を組み合わせてグラフ化すると、その日の昨年の日付と0の値が欠落しているため、結果が歪んでしまい、事実上、すべての値が一致しなくなります。
2011-03-01 10 2012-03-01 4
2011-03-02 4 2012-03-02 2
2011-03-03 6 2012-03-04 1 <---- see where the two queries
end up diverging? (I had nothing
logged for 2012-03-03 so naturally
it was not in the results.
ある年に値が表示されるが別の年には表示されない日付を含む必要なデータをmysqlに出力させる方法はありますか、またはどちらの年にも値が表示されない場合(まだ日付と0が必要)、グラフが機能するようにする方法はありますか?
私はこれを行う方法を理解できないようです...
ありがとう!