访问 - “不支持连接表达式”

时间:2011-12-16 17:37:22

标签: sql ms-access inner-join

我在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)是否足以看到我做错了什么,它似乎与他们在微软网站上的例子相符。

1 个答案:

答案 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)
相关问题