2013-02-14 14 views
1

我只是想嘗試通過在2個以上的字段上使用GROUP BY來獲取最近的日期時間。但是當我嘗試時,數據變得混亂。我用的是:如何使用GROUP BY獲取超過2個字段的最近時間

數據源是:當我使用

Start Time    Real End Time   Staff 
2013-02-14 16:44:27  2013-02-14 18:44:27  P 
2013-02-14 16:44:08  2013-02-14 17:09:08  C 
2013-02-14 16:42:51  2013-02-14 16:43:51  P 
2013-02-14 16:31:26  2013-02-14 17:06:26  V 
2013-02-14 16:04:02  2013-02-14 16:34:02  C 

SELECT staff AS name, start_time, max(real_end_time) AS work_end_time 
FROM treatments 
WHERE date(real_end_time) = curdate() 
GROUP BY name 
ORDER BY work_end_time ASC 

和我:

name  start_time    work_end_time 
V   2013-02-14 16:31:26  2013-02-14 17:06:26 
C   2013-02-14 16:04:02  2013-02-14 17:09:08 
P   2013-02-14 16:42:51  2013-02-14 18:44:27 

顯然,數據一塌糊塗,在正確的應該是這樣的:

name  start_time    work_end_time 
V   2013-02-14 16:31:26  2013-02-14 17:06:26 
C   2013-02-14 16:44:08  2013-02-14 17:09:08 
P   2013-02-14 16:44:27  2013-02-14 18:44:27 

爲此,它殺了很多我的時間,如果你有這個好的解決方案? 也是我想:

SELECT staff AS name, start_time, max(real_end_time) AS work_end_time 
FROM treatments 
WHERE date(real_end_time) = curdate() 
GROUP BY name, start_time 
ORDER BY work_end_time ASC 

和我:

name  start_time    work_end_time 
C  2013-02-14 16:04:02  2013-02-14 16:34:02 
P  2013-02-14 16:42:51  2013-02-14 16:43:51 
V  2013-02-14 16:31:26  2013-02-14 17:06:26 
C  2013-02-14 16:44:08  2013-02-14 17:09:08 
P  2013-02-14 16:44:27  2013-02-14 18:44:27 

回答

0
SELECT staff AS name, start_time, real_end_time AS work_end_time 
FROM ( SELECT staff, start_time, real_end_time 
     FROM treatments 
     WHERE date(real_end_time) = curdate() 
     ORDER BY real_end_time ASC) AS h 
GROUP BY name 

你必須巢與ORDER BY查詢中使用GROUP BY之前。有ORDER BY,你只能做處理一起搗爛造成的,因此,具有的錯誤name風險和start_time

+0

當我想你的SQL,我仍然有錯,這樣我: 名START_TIME work_end_time Ç2013-02- 14 16:04:02 2013-02-14 17:09:08 P 2013-02-14 16:42:51 2013-02-14 18:44:27 V 2013-02-14 16:31:26 2013-02-14 17:06:26 – Victor 2013-02-14 10:40:18

+0

嘗試將'ORDER BY real_end_time ASC'改爲'ORDER BY real_end_time DESC' – 2013-02-14 10:49:58

+0

對不起,您是對的,但剛纔我錯了。非常感謝 – Victor 2013-02-14 10:54:27