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
當我想你的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
嘗試將'ORDER BY real_end_time ASC'改爲'ORDER BY real_end_time DESC' – 2013-02-14 10:49:58
對不起,您是對的,但剛纔我錯了。非常感謝 – Victor 2013-02-14 10:54:27