下面是我的查询,它检查数据表中每行的ID、日期/时间和关键操作(以及其他数据)。这个表格无法更改,超出了我的控制范围。
查询查找创建操作的发生情况(始终是第一个),提取创建的ID和日期/时间,然后在一行数据中提取其他关键操作(添加信息、预订约会、接受)的日期/时间。
所以我得到的东西类似于:
我需要它忽略第二次出现并仅针对每个ID返回一行结果。或者,更好的方法是返回一行显示Bookap Date1和Bookap Date2的结果。
你有任何想法吗?
查询查找创建操作的发生情况(始终是第一个),提取创建的ID和日期/时间,然后在一行数据中提取其他关键操作(添加信息、预订约会、接受)的日期/时间。
SELECT _create.ID AS ID,
_create.`datetime` AS Create,
_inform.`datetime` AS Add_Info,
_bookap.`datetime` AS Book_Appt,
_accept.`datetime` AS Accept,
FROM table AS _create
LEFT JOIN table AS _inform ON (_create.ID = _inform.ID AND _inform.action = 'Add Info')
LEFT JOIN table AS _bookap ON (_create.ID = _bookap.ID AND _bookap.action = 'Book Appt')
LEFT JOIN table AS _accept ON (_create.ID = _accept.ID AND _accept.action = 'Accept')
WHERE _create.action="Create"
所以我得到的东西类似于:
ID - Create Date - Inform Date - Bookap Date - Accept Date
1234 01/02/2013 02/02/2013 09/02/2013 10/02/2013
这个很有效。
但是如果查询发现同一ID的两个事件类型相同,即“预约”时,有时会出现这种情况,它会为该ID拉取两行数据。所以我得到:
ID - Create Date - Inform Date - Bookap Date - Accept Date
1234 01/02/2013 02/02/2013 09/02/2013 10/02/2013
1234 01/02/2013 02/02/2013 15/02/2013 10/02/2013
我需要它忽略第二次出现并仅针对每个ID返回一行结果。或者,更好的方法是返回一行显示Bookap Date1和Bookap Date2的结果。
你有任何想法吗?