我有一个存储创建和关闭日期的表。我要做的是运行一个查询,在给定的时间段内为我提供每天创建的记录数、关闭的记录数以及打开的记录数。表结构:
+------------------------+
| Field | Structure |
+------------+-----------+
| id | int |
| start_date | datetime |
| close_date | datetime |
+------------+-----------+
前两个查询不是问题 - 我现在正在处理的是:
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
第三个查询是一个问题 - 我可以让它告诉我在表中存在这一天的那一天有多少人打开,但我没有想出的是如何让它在每一天写出一行年,给我那天的计数。
这是第一个问题。
第二个是我想让它给我这样的结果,但我不知道该怎么做 - 在这里搜索给了我一些错误的开始,但没有什么可靠的。
+------------+--------+--------+--------+
| 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 处理所有查询 - 我相当确定我可以将所有查询数据从单个查询写入单个数组,然后循环通过它来构建报告,但我真的不希望这样做。有什么建议么?