[英]MS Access SQL is removing parentheses from query
我有这个查询工作正常。 当我打开创建查询并在窗口中复制/粘贴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;
SELECT DISTINCT
在GROUP BY
查询中是多余的; 摆脱DISTINCT
。 SELECT
查询时,丢弃INTO [CodesAndFormsResults]
,该查询返回您想要的内容以及哪个Access的查询设计器不会破坏。 您可以稍后再添加INTO [CodesAndFormsResults]
,但现在可以将自己限制为最简单的查询。 Form = 'HE3'
从join ON
子句移动到基于tbl_PolForms
的子查询中的WHERE
子句。 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;
括号被删除,因为它们是不必要的。 MS Access始终尝试在保存之前简化查询。 有时您可以欺骗MS Access而不管它,但它通常会使您的查询更加复杂和脆弱。
查询解析器正在抱怨(“不支持加入语法”),因为它无法直观地显示查询。 指定条件连接时总是会发生这种情况。 真的没有问题。 您只需通过设计器将查询编辑为SQL而不是。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.