我正在尝试使用 SQL 中先前列的计算。我尝试使用变量但没有运气。这是我现在拥有的:
CREATE VIEW CalculationsTable (id, deltaLat, deltaLon, a, c, d) AS
SELECT Resource.id,
RADIANS("+lat+"-Resource.lat) AS deltaLat,
RADIANS("+lon+"-Resource.lon) AS deltaLon,
(SIN(deltaLat/2)*SIN(deltaLat/2)) + COS("+lat+")
* cos(Resource.lat) * (SIN(deltaLon/2)
* SIN(deltaLon/2)) AS a,
2 * ATAN2(SQRT(a), SQRT(1-a)) AS c,
6371 *c AS d
FROM Resource AS Resource;
我不断收到此错误:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'deltaLat' in 'field list'
错误中的deltaLat
是这部分代码的deltaLat
“(SIN(deltaLat/2)...”
最佳答案
您可以尝试重新格式化查询并使用子表。例如
SELECT calcValueA + 3,
FROM (SELECT A + B calcValueA FROM yourTable);
对于您的查询,您必须执行多次。
关于java - 如何使用 SQL 中其他列的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8374067/