【发布时间】:2012-09-19 00:04:26
【问题描述】:
我需要在最大日期之前返回 1 行,其中包含一些值的总和。但这2行是由不同的人更新的,但只需要显示最新更新的人ID。
我的查询是:
select v.code, sum(v.a_lines), sum(v.b_lines),
v.updated_by, f.period, max(v.updated_on)
from f_values v, f_file f where
v.file_id = f.id
and v.code= '100002'
and
to_char(f.period,'MM/DD/YYYY') = '03/31/2011'
group by v.code, v.updated_by, f.period
这将返回 2 行:
102 30 100 xxx 31-MAR-11 10-AUG-11
102 50 200 yyy 31-MAR-11 07-OCT-11
现在我们只需要返回 1 行。像这样的:
102 80 3000 yyy 31-Mar-11 07-Oct-11
我知道这可以通过从列中删除“updated_by”来实现,但我需要填充它,但它只需要是最新的 updated_by 行('yyy')。希望我的问题很清楚
如果可以,请告知。提前致谢
哈里什
【问题讨论】:
-
这有效:MAX(updated_by) 保持(DENSE_RANK FIRST ORDER BY updated_on DESC)!但是休眠 HQL 不起作用:(。任何人请
-
Unexpected token KEEP 是错误信息
标签: oracle group-by max having