首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Access SQL左联接- access移除括号。

Access SQL左联接- access移除括号。
EN

Stack Overflow用户
提问于 2017-01-18 13:19:47
回答 2查看 138关注 0票数 3

我编写了一个SQL查询,它可以做我想做的事情:

代码语言:javascript
复制
SELECT 
    Tag.ID, Tag.Type, COUNT(Cable.Type) 
FROM 
    Tag 
LEFT JOIN 
    Cable ON (Cable.Type = Tag.Type AND Cable.Use = "KW")
GROUP BY 
    TagID, Tag.Type

问题是,在保存时,MS Access删除了ON子句的括号。当我试图重新打开查询时,我无法获得表,因为查询没有括号就无法工作。另外,由于查询不工作,所以我无法编辑SQL。

Q1:有什么方法可以阻止访问删除括号吗?

Q2:对于如何重新制定SQL以避免这个问题,有什么建议吗?我尝试了以下几点:

代码语言:javascript
复制
SELECT 
    Tag.ID, Tag.Type, COUNT(Cable.Type) 
FROM 
    Tag 
LEFT JOIN 
    Cable ON Cable.Type = Tag.Type
WHERE 
    Cable.Use = "KW" OR Cable.Use Is Null
GROUP BY 
    TagID, Tag.Type

但是,这会删除表"Tag“中的条目,而不匹配表"Cable”中的条目,我不这样做;在这些情况下,我希望计数显示"0“。

我知道使用VBA强制使用带括号的sql查询访问是可能的,但是经常这样做很麻烦,而且我有很多类似的情况。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-18 13:40:19

试试这个:

代码语言:javascript
复制
SELECT 
    Tag.ID, Tag.Type,
    NZ((SELECT COUNT(Cable.Type) 
    FROM Cable
    WHERE Cable.Type = Tag.Type
    AND Cable.Use = "KW"),0)
FROM Tag
票数 1
EN

Stack Overflow用户

发布于 2017-01-18 13:40:34

使用新西兰函数解析空项

代码语言:javascript
复制
SELECT Tag.ID, Tag.Type, nz(COUNT(Cable.Type),0)
FROM Tag LEFT JOIN Cable ON Cable.Type = Tag.Type
WHERE nz(Cable.Use,"KW") = "KW"
GROUP BY TagID, Tag.Type
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41720540

复制
相关文章

相似问题

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