问题描述
我想基于子查询的最大日期值来获取最新记录。这就是整个sql:
select c1.cr_version_id,c1.current_status_id
from cr_version c1
where c1.date_created = (
select max(date_created)
from cr_version
where change_request_id = c1.change_request_id);
如此简单,但是我似乎无法使用DetachedCriteria在Grails中进行等效查询。我以为子查询可能是
def subq = CRVersion.where {
projections {
groupProperty("changeRequest")
max("dateCreated")
}
}
但是后来我不知道如何从主查询中使用子查询,并加入id。我尝试的一切最终都会在某个时候结束:
"ERROR: subquery must return only one column"
解决方法
经过很多挣扎之后,我认为我拥有了我所需要的核心。我可以在此基础上构建:
string.IsNullOrEmpty(whateverStringDate) ? DateTime.MaxValue : DateTime.Parse(whateverStringDate);