繁体   English   中英

查询表达式中的语法错误(逗号)。 MS Access 2013

[英]Syntax error (comma) in query expression. MS Access 2013

我在Access 2013中建立一个SQL查询。这是我的查询:

SELECT  
COUNT(Age) FROM Members AS [Under 12] WHERE Age <= 12,
COUNT(Age) FROM Members AS [13-18] WHERE Age BETWEEN 13 AND 18

但我不断收到此错误:

查询表达式'Age <= 12,来自SukkotMembers AS [13-18]年龄在13和18之间的语法错误(逗号)`

问题出在第二行末尾的逗号,但是我不明白为什么。 当我只运行一行时,它工作正常。 我对SQL真的很陌生,请注意。

我也刚刚意识到AS [Under 12]AS [13-18]无法正常工作,我也不知道为什么

第一:您使用的语法不是有效的SQL,因为您有多个不允许的FROM子句; 这同样适用于where子句,该子句对整个集合进行操作。

您不能仅将SQL的零碎片段和补丁打成一片,以得到有效的查询-必须遵守一个相当严格且定义明确的语法。

您想要的是使用返回标量值的子查询或使用条件计数:

SELECT  
  COUNT(IIF(Age<=12,age,null)) AS [Under 12] 
 ,COUNT(IIF(Age BETWEEN 13 AND 18,age,null)) AS [13-18]  
FROM Members

同样, FROM Members AS [13-18]为表而不是列分配别名。

使用子查询(我想这可能是您的意图):

SELECT DISTINCT
    (SELECT COUNT(*) FROM MEMBERS WHERE AGE<=12) AS  [UNDER 12] ,
    (SELECT COUNT(*) FROM MEMBERS WHERE AGE BETWEEN 13 AND 18) AS  [13-18]
FROM MEMBERS

您还可以总结:

SELECT  
    Sum(Abs(Age <= 12)) AS [Under 12],
    Sum(Abs(Age BETWEEN 13 AND 18)) AS [13-18]  
FROM 
    Members

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM