SQL - 列名无效

Tom*_*Tom 1 sql sql-server

我有以下查询:

SELECT o.outcode AS lead_postcode, v.outcode AS venue_postcode, 6 * o.lat AS distance 
FROM venue_postcodes v, uk_postcodes o 
WHERE o.outcode = 'CF3' 
GROUP BY v.outcode 
HAVING SUM(distance)>100 
ORDER BY distance
Run Code Online (Sandbox Code Playgroud)

当我添加零件时,这停止了工作 GROUP BY v.outcode HAVING SUM(distance)>100

它说服务器无法处理请求.--->列名称'distance'无效.

有什么想法吗?

dog*_*ane 6

distance是一个列别名,您不能引用HAVING子句中的列别名.但你可以使用别名ORDER BY.

尝试更改为:

HAVING SUM(6 * o.lat)>100 
ORDER BY distance
Run Code Online (Sandbox Code Playgroud)