【发布时间】:2019-08-06 20:08:32
【问题描述】:
我有 2 个包含以下信息的表格。
id 名称 日期 时间 1 琼 2019-08-06 13:45:00 2 克拉克 2019-08-03 21:20:00 3 月 2019-08-04 16:12:00表 B
身份证日期时间 1 2019-07-28 09:45:00 1 2019-07-31 12:45:00 1 2019-08-06 13:45:00 2 2019-08-02 21:20:00 2 2019-08-03 20:20:00 2 2019-08-04 21:20:00 2 2019-08-04 23:00:00 2 2019-08-04 01:20:00 3 2019-08-13 16:12:00 3 2019-08-13 19:12:00 3 2019-08-06 01:12:00 3 2019-08-06 08:12:00 3 2019-08-04 14:12:00必需的结果集 - 不同的 A.*(鉴于连接中有其他表,所以我只需要不同 A 集的结果集)
id 名称 日期 时间 1 琼 2019-08-06 13:45:00 2 克拉克 2019-08-04 23:00:00 3 月 2019-08-13 19:12:00所以我需要表 B 中的最大日期和时间,并将其分配给表 A 中的日期和时间字段。
到目前为止尝试了多种方法 -
SELECT A.*
FROM A
INNER JOIN X ON A.id = X.id
WHERE x.col = 'A'
AND (
A.DATE
,A.TIME
) IN
SELECT MAX(TIME) AS TIME
FROM B
WHERE EVT_DT IN (
SELECT MAX(DATE)
FROM B
WHERE A.id = 1
)
这可行,但它不会在表 A 中分配日期和时间:
SELECT A.*
FROM A
INNER JOIN X ON A.id = X.id
WHERE x.col = 'A'
AND CONCAT (
A.DATE
,A.TIME
) =
SELECT MAX(DATE || TIME)
FROM B
WHERE A.id = 1 )
【问题讨论】:
-
提示 - 使用简单连接、最长时间和分组依据。