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

を使用して動作するようにしました

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

しかし、このクエリは HQL では動作しないため、SQL クエリに変更する必要がありました。誰かが HQL に相当するものを手伝ってくれたら、それは素晴らしいことです。

ありがとう

于 2012-09-24T16:15:26.810 に答える
0

最新の updated_by 行が必要だとします。少し明白すぎるように思えますが、句からMIN(v.updated_by)削除すると、あなたが望むことはできませんか?v.updated_byGROUP BY

于 2012-09-19T00:48:01.183 に答える