我有一个运行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部分)。

09-12 17:35