我需要执行查询以检索每个客户的过期日期最短的项目。
我有以下产品表:
PRODUCT
|ID|NAME |EXPIRE_DATE|CUSTOMER_ID
1 |p1 |2013-12-31 |1
2 |p2 |2014-12-31 |1
3 |p3 |2013-11-30 |2
我想获得以下结果:
|ID|EXPIRE_DATE|CUSTOMER_ID
1 |2013-12-31 |1
3 |2013-11-30 |2
使用 Mysql,我会有如下查询:
SELECT ID,min(EXPIRE_DATE),CUSTOMER_ID
FROM PRODUCT
GROUP BY CUSTOMER_ID
但我正在使用 HyperSQL,我无法获得此结果。
使用 HSQLDB 我收到此错误:java.sql.SQLSyntaxErrorException: expression not in aggregate or GROUP BY columns: PRODUCT.ID
.
如果在 HyperSQL 中我修改查询的最后一行,就像GROUP BY CUSTOMER_ID,ID
我获得原始表的相同条目一样。
如何使用 HSQLDB 为每个客户计算具有最快过期日期的产品?