【发布时间】:2013-05-09 14:30:30
【问题描述】:
我需要帮助创建一个 SQL 语句,以便在某个日期之后为 USER_LOG 表中的每个 USERID 检索 LAST 记录。
我忘了写这个表还有几列。
TABLE: USER_LOG
Example 1: Get All users they have bean changed after '2013-05-08 00:00:00.0'.
Must return:
ID 名称 MODIFY_DATE MODIFY_TYPE
55 用户A 2013-05-07 15:47:53.0 1
88 用户B 2013-05-07 16:00:57.0 1
55 用户A 2013-05-08 11:44:10.0 2
88 用户B 2013-05-08 15:47:09.0 2
88 用户B 2013-05-08 16:01:41.0 1
55 用户A 2013-05-09 15:11:53.0 0
55 用户A 2013-05-09 16:00:57.0 0
55 用户A 2013-05-10 09:14:10.0 1
88 用户B 2013-05-10 16:01:41.0 2
55 用户A 2013-05-10 18:23:03.0 2
55 用户A 2013-05-11 09:14:10.0 2
**88 用户 B 2013-05-11 16:01:41.0 1** 返回
55 用户A 2013-05-13 11:34:07.0 1
55 用户A 2013-05-13 15:53:04.0 2
**55 用户A 2013-05-13 16:13:04.0 1** 返回这个
Example 2: Get All users they have bean changed after '2013-05-12 00:00:00.0'.
Must return:
ID 名称 MODIFY_DATE MODIFY_TYPE
55 用户A 2013-05-07 15:47:53.0 1
88 用户B 2013-05-07 16:00:57.0 1
55 用户A 2013-05-08 11:44:10.0 2
88 用户B 2013-05-08 15:47:09.0 2
88 用户B 2013-05-08 16:01:41.0 1
55 用户A 2013-05-09 15:11:53.0 0
55 用户A 2013-05-09 16:00:57.0 0
55 用户A 2013-05-10 09:14:10.0 1
88 用户B 2013-05-10 16:01:41.0 2
55 用户A 2013-05-10 18:23:03.0 2
55 用户A 2013-05-11 09:14:10.0 2
88 用户B 2013-05-11 16:01:41.0 1
55 用户A 2013-05-13 11:34:07.0 1
55 用户A 2013-05-13 15:53:04.0 2
**55 用户A 2013-05-13 16:13:04.0 1** 返回这个
我发现了一些东西,但我不知道我们把日期放在 X 之后的条件:
SELECT u1.*
FROM user_log u1 LEFT JOIN user_log u2
ON (u1.id = u2.id AND u1.modify_date < u2.modify_date )
WHERE u2.modify_date IS NULL;
有人可以帮我解决这个问题吗?
【问题讨论】:
-
很抱歉,但是在写了太多文字之后我仍然找不到真正的问题......在你的问题中,我必须说你的问题根本不清楚