mysql查询:过去三个月的数据

时间:2011-08-09 13:30:49

标签: mysql join

我正在查询过去三个月检索一些数据的问题,唯一的问题是我得到的某些数据在某些月份没有条目。由于他们没有条目我想将那个月标记为0。

我的第一个想法是创建一个临时表,然后加入我需要的标签。但这并没有成功。

有人可以想办法吗?

示例:我想要过去3个月的数据,而我正在

'Component', 1325.1988
'Component', 554.1652
'Component', 103.6668
'Development', 203.4163
'Development', 59.4500
'Development', 19.7498
'Flash Assets', 285.5334
'Flash Assets', 302.1501
'Flash Assets', 61.1836
'Release', 0.6000
'Release', 2.3666
'Repackage', 416.2169
'Repackage', 5195.0839
'Repackage', 4.5667
'Source Diff', 1.9000

'Source Diff' and 'Release'没有3个条目。

由于

查询

SELECT bt.name as 'Labels', 
SUM(TIME_TO_SEC(TIMEDIFF(bs.eventtime, b.submittime))/60) AS 'Data' 
FROM builds b JOIN buildstatuses bs ON bs.buildid = b.id JOIN buildtypes bt 
ON bt.id = b.buildtype WHERE DATE(b.submittime) 
BETWEEN DATE_SUB(CURDATE(), INTERVAL 2 MONTH) AND DATE(CURDATE()) 
AND bs.status LIKE 'Started HANDLER' AND b.buildtype != 11 
AND b.buildtype != 5 AND b.buildtype != 4 GROUP BY bt.name, MONTH(b.submittime);

表架构

构建

+---------------+------------------+------+-----+---------+----------------+
| Field         | Type             | Null | Key | Default | Extra          |
+---------------+------------------+------+-----+---------+----------------+
| id            | int(11)          | NO   | PRI | NULL    | auto_increment |
| submittime    | datetime         | NO   |     | NULL    |                |
| buildstatus   | int(11)          | NO   |     | NULL    |                |
| buildtype     | varchar(20)      | NO   |     | NULL    |                |
| buildid       | int(11)          | NO   |     | NULL    |                |
+---------------+------------------+------+-----+---------+----------------+

buildtypes

+---------------+------------------+------+-----+---------+----------------+
| Field         | Type             | Null | Key | Default | Extra          |
+---------------+------------------+------+-----+---------+----------------+
| id            | int(11)          | NO   | PRI | NULL    | auto_increment |
| name          | varchar(200      | NO   |     | NULL    |                |
+---------------+------------------+------+-----+---------+----------------+

buildstatuses

+------------+----------+------+-----+---------+----------------+
| Field      | Type     | Null | Key | Default | Extra          |
+------------+----------+------+-----+---------+----------------+
| id         | int(11)  | NO   | PRI | NULL    | auto_increment |
| buildid    | int(11)  | NO   | MUL | NULL    |                |
| eventtime  | datetime | NO   |     | NULL    |                |
+------------+----------+------+-----+---------+----------------+