我编写了一个SQL查询,它可以做我想做的事情:
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以避免这个问题,有什么建议吗?我尝试了以下几点:
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查询访问是可能的,但是经常这样做很麻烦,而且我有很多类似的情况。
发布于 2017-01-18 13:40:19
试试这个:
SELECT
Tag.ID, Tag.Type,
NZ((SELECT COUNT(Cable.Type)
FROM Cable
WHERE Cable.Type = Tag.Type
AND Cable.Use = "KW"),0)
FROM Tag发布于 2017-01-18 13:40:34
使用新西兰函数解析空项
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.Typehttps://stackoverflow.com/questions/41720540
复制相似问题