我有一个运行GWT项目的PostgreSQL 9.2.2服务器。
当我在phpPgAdmin的sql选项卡中尝试时,一个查询给它带来麻烦,因为它工作正常:
(select distinct max(enddate) as max,meterid
from usermeasurements
where locationid=127025
AND usage>-1
GROUP BY meterid ) as t1
left outer join usermeasurements as t2
ON (t1.meterid=t2.meterid
AND t1.max=t2.enddate)
但是当我尝试在gwt项目中使用查询时,出现以下错误:
[btpool0-5] ERROR com.example.DataGetter - unable to get usermeasurement: org.postgresql.util.PSQLException: ERROR: syntax error at or near "as" Position: 112
这是我第一次体验phpPgAdmin和应用程序之间的区别。
可以看出,我使用BoneCP来处理我的连接池,但就我所知这没有任何效果。
最佳答案
也许查询应如下所示:
SELECT *
FROM
(SELECT DISTINCT max(enddate) as max, meterid
FROM usermeasurements
WHERE locationid = 127025
AND usage > -1
GROUP BY meterid ) as t1
LEFT JOIN usermeasurements as t2
ON (t1.meterid=t2.meterid
AND t1.max=t2.enddate)
问题中的查询不正确(它看起来像是较大查询中的
FROM
部分)。