将 SQL 转换为 HQL
Transforming SQL to HQL
我的table如下:
Id Timestamp name_id testobject_id
----------------------------------------------------
2 | 2017-12-15 18:36:46 | 1 | 1
3 | 2017-12-15 18:36:46 | 2 | 1
1 | 2016-01-01 00:00:00 | 1 | 1
4 | 2017-12-15 18:36:46 | 1 | 2
5 | 2017-12-15 18:36:46 | 2 | 2
我想要每组的最后一条记录(name_id)。但我只想要 testobject_id = 1
的结果
这个 SQL 工作正常:
SELECT *
FROM checkresult
WHERE test_object_id = 4
AND timestamp IN (
SELECT MAX(timestamp)
FROM checkresult
WHERE test_object_id = 4
GROUP BY name_id
);
我的 HQL 不工作。
FROM checkresult as cr
WHERE cr.testobject = :testobject
AND cr.timestamp IN (
MAX(cr.timestamp)
FROM checkresult as result WHERE result.testobject = :testobject
GROUP BY result.checkName)
感谢您的每一次帮助。
期望的输出:
Id Timestamp name_id testobject_id
----------------------------------------------------
2 | 2017-12-15 18:36:46 | 1 | 1
3 | 2017-12-15 18:36:46 | 2 | 1
您在第二个 SQL 语句中写了 MAX(cr.timestamp)
。
不过应该是
MAX(result.timestamp)
FROM checkresult as result WHERE result.testobject = :testobject
GROUP BY result.checkName
还有你的错误信息是什么?
我的table如下:
Id Timestamp name_id testobject_id
----------------------------------------------------
2 | 2017-12-15 18:36:46 | 1 | 1
3 | 2017-12-15 18:36:46 | 2 | 1
1 | 2016-01-01 00:00:00 | 1 | 1
4 | 2017-12-15 18:36:46 | 1 | 2
5 | 2017-12-15 18:36:46 | 2 | 2
我想要每组的最后一条记录(name_id)。但我只想要 testobject_id = 1
的结果这个 SQL 工作正常:
SELECT *
FROM checkresult
WHERE test_object_id = 4
AND timestamp IN (
SELECT MAX(timestamp)
FROM checkresult
WHERE test_object_id = 4
GROUP BY name_id
);
我的 HQL 不工作。
FROM checkresult as cr
WHERE cr.testobject = :testobject
AND cr.timestamp IN (
MAX(cr.timestamp)
FROM checkresult as result WHERE result.testobject = :testobject
GROUP BY result.checkName)
感谢您的每一次帮助。
期望的输出:
Id Timestamp name_id testobject_id
----------------------------------------------------
2 | 2017-12-15 18:36:46 | 1 | 1
3 | 2017-12-15 18:36:46 | 2 | 1
您在第二个 SQL 语句中写了 MAX(cr.timestamp)
。
不过应该是
MAX(result.timestamp)
FROM checkresult as result WHERE result.testobject = :testobject
GROUP BY result.checkName
还有你的错误信息是什么?