0

そこにあるテーブルがありare 5 columnsますa,b,c,d,tran_date

テーブル内のすべての最小 tran_date を調べるクエリを生成したいと考えて a,b,c,dいます。

これを行う方法を教えてください。

編集:このクエリの結果は、クエリの結果である単一の日付から減算する必要があります:

  select ref_date from ref_table

エラーが原因でこれがどのように行われるかORA-01427: single row subquery returns more than one row

4

3 に答える 3

1

@astanderの回答を拡張して、追加の減算要件を含めます。

select a, b, c, d,
    min(tran_date) as min_tran_date,
    min(tran_date) - (select ref_date from ref_table) as diff
from my_table
group by a, b, c, d;

がすべての値の前、すべての後、または中間のどこかにあるdiffかによって、 が正または負になることに注意してください。ref_datetran_date

特定の値のみに関心があるdiff場合 (たとえば、minimnumtran_dateが の後にあるref_date場合)、句を追加しhavingて結果をフィルタリングできます。この場合:

having min(tran_date) - (select ref_date from ref_table) > 0

またはおそらくより明確にするために:

having min(tran_date) > (select ref_date from ref_table)
于 2011-06-23T08:44:09.190 に答える
1

私があなたを正しく理解しているなら、次のようなことを試してください

SELECT  a,
        b,
        c,
        d,
        MIN(tran_date) MIN_tran_date
FROM    Table
GROUP BY    a,
            b,
            c,
            d
于 2011-06-23T05:18:37.120 に答える
0
SELECT A, Min(SomeDate) FROM Foo GROUP BY A
于 2011-06-23T05:18:55.243 に答える