SELECT AS 上未知的 Firebird 专栏
Firebird column unknown on SELECT AS
我有 table 个通话及其时长:
+----+---------------+---------------+---------------+
| ID | CALLER_NUMBER | CALLEE_NUMBER | CALL_DURATION |
+----+---------------+---------------+---------------+
| 0 | 1xxx0001020 | 1xxx3024414 | 0.30 |
| 1 | 1xxx1002030 | 1xxx0303240 | 134.24 |
| 2 | 1xxx2003040 | 1xxx0324220 | 330.00 |
| 3 | 1xxx3004050 | 1xxx5829420 | 104.00 |
+----+---------------+---------------+---------------+
我想 select 所有呼叫总时长超过 500 秒的号码。我的查询使用 SELECT AS
重命名 SUM(...)
字段,以便我可以在 HAVING
子句中引用它:
SELECT CALLER_NUMBER, SUM(CALL_DURATION) AS TOTAL
FROM CALLS
GROUP BY CALLER_NUMBER
HAVING TOTAL > 500
当我在 Firebird SQL 中 运行 此查询时,出现以下错误:
Message: isc_dsql_prepare failed
SQL Message : -206
can't format message 13:794 -- message file not found
Engine Code : 335544569
Engine Message :
Dynamic SQL Error
SQL error code = -206
Column unknown
TOTAL
At line 4, column 8
您不能在 having
子句中使用 alias
。
您应该在 having
子句中使用 sum
,如下所示:
SELECT CALLER_NUMBER, SUM(CALL_DURATION) AS TOTAL
FROM CALLS
GROUP BY CALLER_NUMBER
HAVING SUM(CALL_DURATION) > 500
我有 table 个通话及其时长:
+----+---------------+---------------+---------------+
| ID | CALLER_NUMBER | CALLEE_NUMBER | CALL_DURATION |
+----+---------------+---------------+---------------+
| 0 | 1xxx0001020 | 1xxx3024414 | 0.30 |
| 1 | 1xxx1002030 | 1xxx0303240 | 134.24 |
| 2 | 1xxx2003040 | 1xxx0324220 | 330.00 |
| 3 | 1xxx3004050 | 1xxx5829420 | 104.00 |
+----+---------------+---------------+---------------+
我想 select 所有呼叫总时长超过 500 秒的号码。我的查询使用 SELECT AS
重命名 SUM(...)
字段,以便我可以在 HAVING
子句中引用它:
SELECT CALLER_NUMBER, SUM(CALL_DURATION) AS TOTAL
FROM CALLS
GROUP BY CALLER_NUMBER
HAVING TOTAL > 500
当我在 Firebird SQL 中 运行 此查询时,出现以下错误:
Message: isc_dsql_prepare failed
SQL Message : -206
can't format message 13:794 -- message file not found
Engine Code : 335544569
Engine Message :
Dynamic SQL Error
SQL error code = -206
Column unknown
TOTAL
At line 4, column 8
您不能在 having
子句中使用 alias
。
您应该在 having
子句中使用 sum
,如下所示:
SELECT CALLER_NUMBER, SUM(CALL_DURATION) AS TOTAL
FROM CALLS
GROUP BY CALLER_NUMBER
HAVING SUM(CALL_DURATION) > 500