我是MySQL新手。我需要一个SQL查询以获得以下预期结果。请检查以下,如何使用MySQL获取通过和失败结果的最大日期?
表: user_results
id cId uId tId pass date
1 23 34 2 Y 7/8/2013 10:24:47
2 23 34 2 N 11/27/2014 10:36:32
3 23 34 3 Y 12/9/2013 10:24:47
4 23 34 3 N 11/27/2014 10:39:10
5 23 34 4 Y 10/26/2013 10:24:47
6 23 34 4 N 11/27/2014 10:38:08
7 59 93 2 Y 11/24/2013 9:34:23
8 69 82 2 Y 11/28/2014 9:04:22
9 69 82 2 Y 11/28/2014 8:59:52
10 69 82 4 Y 11/28/2014 8:59:52
11 69 82 4 Y 11/28/2014 9:10:40
12 69 82 4 N 11/28/2014 9:12:01
13 72 72 2 N 12/1/2014 6:46:02
14 73 69 2 N 12/1/2014 6:49:29
15 73 69 3 N 12/1/2014 6:51:31
16 73 69 3 N 12/1/2014 7:11:25
下面一个是预期的结果,
id cId uId tId pass date
1 23 34 2 Y 7/8/2013 10:24:47
3 23 34 3 Y 12/9/2013 10:24:47
5 23 34 4 Y 10/26/2013 10:24:47
7 59 93 2 Y 11/24/2013 9:34:23
9 69 82 2 Y 11/28/2014 8:59:52
11 69 82 4 Y 11/28/2014 9:10:40
13 72 72 2 N 12/1/2014 6:46:02
14 73 69 2 N 12/1/2014 6:49:29
16 73 69 3 N 12/1/2014 7:11:25
注:如果用户通过测试(尝试#),需要显示最近的通过条目,如果用户未通过测试(尝试次数),则需要显示最近的失败条目。
这里是我的查询:
SELECT *, COUNT(tId), MAX(date)
FROM user_results
WHERE DATE_ADD(date, INTERVAL 1 YEAR) >= DATE_SUB(CURDATE(), INTERVAL 1 YEAR)
GROUP BY cId, tId
HAVING COUNT(tId) =1 OR (pass = 'Y' AND COUNT(tId) >=2)
请帮帮忙!感谢您的进步!
你的意思是你想要最近的通行证和最近的失败条目 – 2014-12-02 07:39:26
是的,Sunil。我想显示最近的通过和最近的失败条目。 – 2014-12-02 07:43:20
你试过在结果中使用'ORDER BY'吗? – Jhecht 2014-12-02 07:45:19