【发布时间】:2016-12-01 04:33:38
【问题描述】:
我有下一个 sql 查询:
SELECT
@row_number:=@row_number+1 AS ID, IGN_DATES.PLACA, IGN_DATES.FECHA, OFF_DATES.FECHA
FROM
(SELECT
a.PLACA AS PLACA, MIN(p.FECHA_GPS) AS FECHA
FROM
POSICIONHISTORIAL p
JOIN AUTOMOVIL a ON p.SECAUTOMOVIL = a.SECAUTOMOVIL
JOIN EVENTO e ON p.EVENTO_SECEVENTO = e.SECEVENTO
WHERE
p.FECHA_GPS BETWEEN '2016-09-01' AND '2016-10-01'
AND e.CODIGO = 'ENC'
AND a.PLACA IN ('SHS946', 'SHT011')
GROUP BY a.PLACA , DAY(p.FECHA_GPS)) AS IGN_DATES
JOIN
(SELECT
a.PLACA AS PLACA,
SUBSTRING_INDEX(GROUP_CONCAT(p.FECHA_GPS
ORDER BY p.FECHA_GPS DESC
SEPARATOR ' , '), ',', 2) AS FECHA
FROM
POSICIONHISTORIAL p
JOIN AUTOMOVIL a ON p.SECAUTOMOVIL = a.SECAUTOMOVIL
JOIN EVENTO e ON p.EVENTO_SECEVENTO = e.SECEVENTO
WHERE
p.FECHA_GPS BETWEEN '2016-09-01' AND '2016-10-01'
AND e.CODIGO = 'APA'
AND a.PLACA IN ('SHS946', 'SHT011')
GROUP BY a.PLACA , DAY(p.FECHA_GPS))
AS OFF_DATES ON DATE(IGN_DATES.FECHA) = DATE(OFF_DATES.FECHA),
(SELECT @row_number:=0) AS t;
我用的是mysql 5.7,这个查询的结果是:
但是从 JPA 2.1 (Hibernate) 调用的本机查询返回 OFF_DATES.FECHA 的重复值,这是来自 eclipse 调试的值。
语句中的 rowid 是为了解决问题而聚合的,但这并不成功
谢谢你的帮助。
【问题讨论】:
-
@AlanHay 感谢您的评论,但对我没有用,我发布了我的答案。
标签: java mysql hibernate jpa jpa-2.1