xec*_*s12 1 sql ms-access ms-access-2007
我在获取查询以在MS Access 2007中运行时遇到一些问题.我有以下查询可以正常工作:
SELECT boq.PIPE_AG,
boq.PIPE_UG,
boq.Pipe,
boq.Unit,
SUM(boq.Quantity) AS SumOfQuantity
FROM [Total - BOQ] boq
GROUP BY boq.PIPE_AG, boq.PIPE_UG, boq.Pipe, boq.Unit
HAVING boq.PIPE_AG In (-1,1) OR boq.PIPE_UG In (-1,1);
Run Code Online (Sandbox Code Playgroud)
当我将calq.Pipe ='1'添加到HAVINGcaluse时,如下所示:
HAVING boq.Pipe ='1' AND (boq.PIPE_AG In (-1,1) OR boq.PIPE_UG In (-1,1))
Run Code Online (Sandbox Code Playgroud)
我收到一条错误消息:
您尝试执行的查询不包含指定的表达式'boq.Pipe ='1'和(boq.PIPE_AG In(-1,1)或boq.PIPE_UG In(-1,1))'作为集合函数.
我为什么抱怨而有点困惑.我在GROUP BY查询的子句中确实有三个文件.如果我将其更改为使用WHERE子句,查询工作正常,但我试图理解为什么当我将Pipe字段添加到HAVING子句时它会抱怨.
使用WHERE子句而不是HAVING.您应该仅将HAVING用于聚合函数.例如,您可以使用
HAVING Sum(boq.Quantity) > 1000
Run Code Online (Sandbox Code Playgroud)
应该这样做
| 归档时间: |
|
| 查看次数: |
1633 次 |
| 最近记录: |