【问题标题】:SQL OpenOffice Base "Not a Condition in Statement"SQL OpenOffice Base“不是语句中的条件”
【发布时间】:2016-06-12 20:09:02
【问题描述】:

所以我尝试使用 OpenOffice Base,但我遇到了困难。现在,我在这里有这个 SQL 查询,它运行良好:

SELECT  "CUSTOMER"."CREDIT_LIMIT" AS "CREDIT_LIMIT",
         COUNT(*) AS "TOTAL_NUMBER"
FROM "CUSTOMER"
WHERE "SLSREP_NUMBER" = 6
GROUP BY "CREDIT_LIMIT";

查询:

| CRED_LIMIT | TOTAL_NUMBER |
| 1500       | 1             |
| 750       | 2             |
| 1000       | 1             |

现在我的问题是当我添加这个时:AND ("TOTAL_NUMBER" > 1)

SELECT  "CUSTOMER"."CREDIT_LIMIT" AS "CREDIT_LIMIT",
         COUNT(*) AS "TOTAL_NUMBER"
FROM "CUSTOMER"
WHERE "SLSREP_NUMBER" = 6 AND "TOTAL_NUMBER" > 1
GROUP BY "CREDIT_LIMIT";

Open Office 会抛出错误:“Not a condition in statement”

我的问题是:我的语法有问题吗?我写错了吗?还是我的 OOBase 副本有缺陷?还是我错过了什么?


更新:我尝试按照potashin 的建议使用HAVING(感谢您的回答),但它似乎仍然无法正常工作。

【问题讨论】:

  • 也许this answer 中的“一般......”位可能会有所帮助? “have”子句不能使用您定义的列别名,但这似乎不是它所抱怨的......

标签: sql oracle openoffice-base


【解决方案1】:

@potashin 很接近,但并不完全正确。不要说AS "TOTAL_NUMBERS"。此外,Base 不需要在大写名称周围加上引号。

SELECT CUSTOMER.CREDIT_LIMIT AS CREDIT_LIMIT, COUNT(*)
FROM CUSTOMER
WHERE SLSREP_NUMBER = 6
GROUP BY CREDIT_LIMIT
HAVING COUNT(*) > 1

另请参阅:http://www.w3resource.com/sql/aggregate-functions/count-having.php

【讨论】:

  • 您仍然可以拥有AS alias,只是不能在having 子句中使用该名称来引用它——只能在order by 子句中使用。 AS 关键字是可选的,如果它仍然不喜欢的话。听起来 OpenOffice 正在抱怨别的东西——它没有得到 ORA-00904。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-10-14
  • 2011-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-19
  • 2022-01-14
相关资源
最近更新 更多