2017-07-27 160 views
1

這是我當前在數據庫中的數據。從查詢中選擇最大日期和最大時間

======================================== 
    id | IC  |date   |time  | 
    1 | test |2017-07-27 |14:19:26 | 
    2 | test |2017-07-27 |14:20:26 | 
    3 | second |2017-07-28 |06:58:55 | 
    ======================================== 

我想獲得每個IC的maxdate和maxtime。

我想:

SELECT id,pass_no,time_in,ic,date_in FROM `check_in` 
WHERE date_in = (SELECT MAX(date_in) FROM check_in) 
AND 
time_in = (SELECT MAX(time_in) FROM check_in) GROUP BY IC 

但它只返回最後一行的數據給我。我想要的結果是一樣

======================================== 
    id | IC  |date   |time  | 
    2 | test |2017-07-27 |14:20:26 | 
    3 | second |2017-07-28 |06:58:55 | 
    ======================================== 
+0

看到這個鏈接已經有人問過。 https://stackoverflow.com/questions/22629307/mysql-select-where-max-date-and-max-time –

+0

作爲單個實體存儲日期和時間 – Strawberry

回答

0

您可以通過IC使用一個元組和組

SELECT id,pass_no,time_in,ic,date_in 
    FROM `check_in` 
    WHERE (date_in, time_in, ic) in (
     SELECT MAX(date_in), max(time_id), ic 
      FROM check_in 
      GROUP BY id) 
+0

你的答案很好! – ron

2

這將返回每個IC的最大日期&時間:

select ic, max(date), max(time) 
from check_in 
group by ic 
+0

但這個返回id 1和3我試過了,我想要id 2和3 – ron

+0

@ron爲什麼你沒有在你的問題中正確描述它?它只是告訴:「我想獲得每個IC的maxdate和maxtime。」沒有關於身份證。 –

0

這應該工作

select max(time),date,id 
from (select max(date) as date,time,id from check-in group by time,id) 
group by date,id; 
0

你是否嘗試用「或」條件代替「AND」?

相關問題