作成日と閉鎖日を格納するテーブルがあります。私がやろうとしているのは、特定の期間に、毎日、作成されたレコードの数、閉じられたレコードの数、開いているレコードの数を取得するクエリを実行することです。テーブル構造:
+------------------------+
| Field | Structure |
+------------+-----------+
| id | int |
| start_date | datetime |
| close_date | datetime |
+------------+-----------+
最初の 2 つのクエリは問題ではありません。現在取り組んでいるのは次のとおりです。
SELECT COUNT(*), start_date FROM dates
WHERE start_date BETWEEN 'start' AND 'end'
GROUP BY start_date
ORDER BY start_date ASC
SELECT COUNT(*), close_date FROM dates
WHERE close_date BETWEEN 'start' AND 'end'
GROUP BY close_date
ORDER BY close_date ASC
3 番目のクエリは問題です。その日がテーブルに存在する日に開いていた数を取得できますが、私が理解していないのは、毎日の行を年とその日のカウントを教えてください。
それが最初の問題です。
2つ目は、このような結果を得るためにそれを取得したいということです。その方法がわかりません.
+------------+--------+--------+--------+
| Date | Opened | Closed | Active |
+------------+--------+--------+--------+
| 2012-05-06 | 3 | 2 | 7 |
| 2012-05-07 | 2 | 0 | 9 |
| 2012-05-08 | 0 | 0 | 9 |
| 2012-05-09 | 0 | 3 | 6 |
+------------+--------+--------+--------+
必要に応じて個別のクエリを実行し、必要に応じて db ではなくコードですべてを処理することを完全にいとわない-個々のクエリからのすべてのクエリデータを単一の配列に書き込んでループすることができると確信しているそれを介してレポートを作成しますが、私はそうしないことを本当に望んでいます。助言がありますか?