【问题标题】:INNER JOIN issue with MS AccessMS Access 的 INNER JOIN 问题
【发布时间】:2012-12-04 15:07:06
【问题描述】:

有谁知道下面的查询有什么不正确的地方吗?

SELECT S1.[Company], COUNT(S1.[Milestone]) AS ShouldBeMilestones

FROM Sheet1 AS S1

INNER JOIN Sheet1 S2
ON S2.[Company] = S1.[Company]
AND S2.[Project] = S1.[Project]
AND S2.[Milestone] = 'Milestone 1'
AND S2.[%compl#] = 100

INNER JOIN Sheet1 S3
ON S3.[Company] = S1.[Company]
AND S3.[Project] = S1.[Project]
AND S3.[Milestone] = 'Milestone 2'
AND S3.[%compl#] = 100

WHERE ((S1.[Task class] <> 'A') AND (S1.[Task class] <> 'B') AND (S1.[Task class] <> ''))
AND S1.[Milestone] NOT LIKE '0.*' AND S1.[Milestone] NOT LIKE '1.*'
AND S1.[Start] <= Now()

GROUP BY S1.[Company];

我在 MS Access 2010 中运行时收到“FROM 子句中的语法错误”消息...

任何想法将不胜感激!

谢谢,

【问题讨论】:

  • 认为(但不能确定地记得)Access 需要多个连接以 (()) 括起来。所以FROM (((Sheet1 AS s1) INNER JOIN Sheet1 S2 ON .....) INNER JOIN Sheet1 S3 ON ....)

标签: sql ms-access inner-join


【解决方案1】:

MS Access SQL 的奇怪之处在于,在多 JOIN 查询中,您必须在 JOINs 周围加上括号。我讨厌这个功能,还没有自己解决它背后的“逻辑”。您可能很幸运在 Access 查询生成器中重新构建了一个简单版本,然后在不弄乱括号的情况下对其进行编辑。

【讨论】:

  • 我其实是通过SQL编辑器写的。试图通过向导构建它,但它不起作用。不知道如何从括号开始。你有什么建议吗?谢谢!!!
  • 我不想窃取信用; @MichaelBerkowski 似乎在对您的问题的评论中有一个想法。
  • 嗨科格。通过执行迈克尔建议的操作,我收到一条新消息错误:“JOIN NOT SUPPORTED”
  • 您可以在原始帖子中添加您的新代码吗? (如果可以的话,留下你的原件,它有助于展示解决方案的进展)
  • 也许这个链接会有所帮助? social.msdn.microsoft.com/Forums/is/accessdev/thread/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-06
  • 2015-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-25
相关资源
最近更新 更多