首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MS Access SQL正在从查询中删除括号

MS Access SQL正在从查询中删除括号
EN

Stack Overflow用户
提问于 2013-04-16 23:53:01
回答 2查看 1.3K关注 0票数 1

我有这个查询,它工作得很好。当我打开create query并在窗口中复制/粘贴SQL时,它运行得很好,并且我可以编辑表单编号并保存查询。在我关闭查询,然后在设计视图中再次打开它后,括号都消失了,当我尝试更改或保存任何内容时,我得到的连接表达式不受支持。无论查询如何运行,结果都是正确的。我能做些什么来防止查询像这样被更改?为什么要去掉括号?

代码语言:javascript
复制
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;
EN

回答 2

Stack Overflow用户

发布于 2013-04-17 00:36:15

  1. SELECT DISTINCTGROUP BY查询中是多余的;当你专注于构建一个普通的SELECT查询时,去掉INTO [CodesAndFormsResults],它返回你想要的东西,并且哪个Access的查询设计器不会损坏。您可以稍后再添加连接,但现在仅限于从possible.
  2. Move ON子句到基于INTO [CodesAndFormsResults]的子查询中的Form = 'HE3'子句的最简单查询

代码语言:javascript
复制
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;
票数 2
EN

Stack Overflow用户

发布于 2013-04-17 00:16:47

括号正在被删除,因为它们是不必要的。MS Access总是在保存查询之前尝试简化查询。有时你可以欺骗MS Access,让它不去管它,但这通常会使你的查询变得更加复杂和脆弱。

查询解析器正在抱怨(“不支持连接语法”),因为它不能直观地显示查询。当您指定条件联接时,总是会发生这种情况。这真的没有什么问题。您只需作为SQL编辑查询,而不是通过设计器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16041568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档