我在MySQL中有一个查询,它返回三列,一个候选人的ID,他们被联系的日期以及由谁。我正在尝试编写一个查询,只返回他们被联系的最近时间,以及他们的ID和由谁。
SELECT e.ID,
ByWho,
Date
FROM ContactSummaries e
JOIN(SELECT ID,
MAX(Date) AS LastContact
FROM ContactSummaries
GROUP BY
ID) lu
ON (e.ID = lu.ID AND e.Date = lu.LastContact)
所以,那就是在SQL Server Management Studio中完美运行。当我将其粘贴到Access中以制作一个漂亮的小报告时,它会抱怨“不完整的查询条款”。
然后我尝试了这个:
SELECT
ID,
ByWhom,
Date
FROM( ContactSummaries AS [e]
INNER JOIN
SELECT ID,
MAX(Date) AS LastContacted,
ByWhom
FROM ContactSummaries
ON
ID,
MAX(Date) AS LastContacted,
FROM ContactSummaries
GROUP BY ID)
AS [l]
ON
[e].ID = [l].ID,
AND [e].Date = [l].LastContacted;
“不支持连接表达式”。我不知道SQL(或特别是Access)是否足以看到我做错了什么,它似乎与他们在微软网站上的例子相符。
答案 0 :(得分:2)
您无法在Access中单独使用Join。另请注意,Date是保留字。我想你想要
SELECT e.ID,
ByWho,
[Date]
FROM ContactSummaries e
inner join (SELECT ID,
MAX([Date]) AS LastContact
FROM ContactSummaries
GROUP BY
ID) lu
ON (e.ID = lu.ID AND e.Date = lu.LastContact)