我有这个查询工作正常。当我打开创建查询并在窗口中复制/粘贴SQL时,它运行正常,我可以编辑表单编号并保存查询。关闭查询然后在设计视图中再次打开它后,括号全部消失,当我尝试更改任何内容或保存它时,我得到Join Expression Not Supported。查询无论如何运行,结果都是正确的。我该怎么做才能防止查询被改变?为什么要删除括号?
SELECT DISTINCT
A01.ID,
A01.Symbol,
A01.Number,
A01.Module,
A02.Form as FormHE3,
MAX (A02.Sequence) as FormSeq
INTO [CodesAndFormsResults]
FROM
(01_PreviousTable A01
left outer join tbl_PolForms A02 ON (A02.ID = A01.ID
and A02.Form = 'HE3'))
GROUP BY
A02.Form,
A01.ID,
A01.Symbol,
A01.Number,
A01.Module
ORDER BY
A01.Number,A01.Symbol,A01.Module;
答案 0 :(得分:2)
SELECT DISTINCT
在GROUP BY
查询中是多余的;摆脱DISTINCT
。INTO [CodesAndFormsResults]
,同时专注于构建一个简单的SELECT
查询,该查询返回您想要的内容以及哪个Access查询设计器不会破坏。您可以稍后再添加INTO [CodesAndFormsResults]
,但现在可以限制自己最简单的查询。Form = 'HE3'
从联接ON
子句移至基于WHERE
的子查询中的tbl_PolForms
子句。SELECT
A01.ID,
A01.Symbol,
A01.Number,
A01.Module,
A02.Form AS FormHE3,
MAX(A02.Sequence) AS FormSeq
FROM
[01_PreviousTable] AS A01
LEFT JOIN
(
SELECT t.ID, t.Sequence, t.Form
FROM tbl_PolForms AS t
WHERE t.Form = 'HE3'
) AS A02
ON A01.ID = A02.ID
GROUP BY
A02.Form,
A01.ID,
A01.Symbol,
A01.Number,
A01.Module
ORDER BY
A01.Number,
A01.Symbol,
A01.Module;
答案 1 :(得分:1)
括号被删除,因为它们是不必要的。 MS Access始终尝试在保存之前简化查询。有时你可以欺骗MS Access而不管它,但它通常会使你的查询变得更加复杂和脆弱。
查询解析器正在抱怨(“不支持加入语法”),因为它无法直观地显示查询。指定条件连接时总是会发生这种情况。真的没有问题。您只需通过设计器将查询编辑为SQL而不是。