具有 oracle 数据库的 JPQL 查询
JPQL query with having oracle db
我正在使用 jpql jpa eclipselink 以下查询不起作用:
SELECT c FROM TableA c WHERE c.forumId = :forumId AND c.isDefault = true HAVING MAX (c.validFrom)
我得到的错误 "The expression is not a valid conditional expression"
带有 GROUP BY
表达式的 HAVING
子句 only works。
The HAVING clause allows for the results of a GROUP BY to be filtered.
您的问题是:
i want o get max validFrom how can i make expression ot of this
但是您可以在没有 GROUP BY
和 HAVING
的情况下进行查询来执行您想要的操作:
select c from TableA c WHERE c.validFrom = (
SELECT MAX(c2.validFrom)
FROM TableA c2
WHERE c2.Id = c.Id AND c.forumId = :forumId AND c.isDefault = true
)
如果您想使用 GROUP BY
和 HAVING
,您可以这样做:
SELECT c FROM TableA c WHERE c.validFROM = (
SELECT MAX(validFROM)
FROM TableA
WHERE forumId = :forumId AND isDefault = true
GROUP BY validFROM
HAVING validFROM=c.validFROM
)
我正在使用 jpql jpa eclipselink 以下查询不起作用:
SELECT c FROM TableA c WHERE c.forumId = :forumId AND c.isDefault = true HAVING MAX (c.validFrom)
我得到的错误 "The expression is not a valid conditional expression"
带有 GROUP BY
表达式的 HAVING
子句 only works。
The HAVING clause allows for the results of a GROUP BY to be filtered.
您的问题是:
i want o get max validFrom how can i make expression ot of this
但是您可以在没有 GROUP BY
和 HAVING
的情况下进行查询来执行您想要的操作:
select c from TableA c WHERE c.validFrom = (
SELECT MAX(c2.validFrom)
FROM TableA c2
WHERE c2.Id = c.Id AND c.forumId = :forumId AND c.isDefault = true
)
如果您想使用 GROUP BY
和 HAVING
,您可以这样做:
SELECT c FROM TableA c WHERE c.validFROM = (
SELECT MAX(validFROM)
FROM TableA
WHERE forumId = :forumId AND isDefault = true
GROUP BY validFROM
HAVING validFROM=c.validFROM
)