0

我需要在最大日期之前返回 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')。希望我的问题很清楚

请告知这是否可能。提前致谢

哈里什

4

2 回答 2

0

你说你想要最新的 updated_by 行。这似乎有点太明显了,但是从子句中MIN(v.updated_by)删除不会做你想要的吗?v.updated_byGROUP BY

于 2012-09-19T00:48:01.183 回答
0

通过使用让它工作

MAX(updated_by) KEEP (DENSE_RANK FIRST ORDER BY updated_on DESC)

但是这个查询在 HQL 上不起作用,所以只好改成 SQL 查询。如果有人可以在 HQL 等价物上提供帮助,那就太好了。

谢谢

于 2012-09-24T16:15:26.810 回答