日付と値の列を持つテーブルがあります。テーブルには新しい値が毎日入力されます。人口が発生しない場合があります。過去の毎週月曜日に最新の値のレポートを生成する必要があります。このクエリは、2013 年 2 月 18 日にデータが収集されなかったことを示しています。
mysql> dayofweek(date) = 2 のテーブルから日付を選択します。
+------------+
| date |
+------------+
| 2013-02-04 |
| 2013-02-11 |
| 2013-02-25 |
| 2013-03-04 |
| 2013-03-11 |
| 2013-03-18 |
| 2013-03-25 |
+------------+
7 rows in set (0.00 sec)
そのため、その月曜日の最新の以前の値を取得したいと思います。次のように欠落している日付がわかっている場合は、 <= max(date) を個別に使用してそれを行うことができます。
mysql> select max(date) from table where date <= "2013-02-18";
+------------+
| max(date) |
+------------+
| 2013-02-14 |
+------------+
1 row in set (0.00)
これは、2013-02-18 の最新の値が 2013-02-14 に収集されたことを示しています。したがって、毎週月曜日の最新の値を返す単一のクエリが必要です。その日の値が存在しない場合は、最新の以前の既存の値を使用します。私の出力は次のようになります。
+------------+
| date |
+------------|
| 2013-02-04 |
| 2013-02-11 |
| 2013-02-14 |
| 2013-02-25 |
| 2013-03-04 |
| 2013-03-11 |
| 2013-03-18 |
| 2013-03-25 |
+------------+
前もって感謝します。