0

いくつかのテーブルの最新の日付がすべてOracleで互いに一致することをテストしています。私が思いついたSQLは次のようになります。

select ICEAG.process_month
from (
    select *
    from (
        select process_month
        from TABLE1
        group by process_month
        order by process_month desc
    )
    where rownum <=1
) ICEAG
join (
    select *
    from (
        select process_month
        from TABLETWO
        group by process_month
        order by process_month desc
    )
    where rownum <=1
) GAI on (ICEAG.process_month = GAI.process_month)

これは機能しますが、約12のテーブルをチェックする必要があります。もっとサブクエリに参加し続けるべきですか、それとももっと良い方法がありますか?

4

2 に答える 2

2
SELECT COUNT(*) FROM (
(SELECT MAX(process_month) FROM TABLE1)
  UNION
(SELECT MAX(process_month) FROM TABLE2)
  UNION
(SELECT MAX(process_month) FROM TABLE3)
);

結果が 1 より大きい場合、テーブルの 1 つで最後の process_month が異なります。

于 2012-10-10T20:40:18.697 に答える
1

出力を一致させたいだけの場合は、交差を使用できます。

    select process_month
    from TABLETWO
    group by process_month
    order by process_month desc
    where rownum <=1
INTERSECT
    select process_month
    from TABLE1
    group by process_month
    order by process_month desc
    where rownum <=1
于 2012-10-10T20:41:23.883 に答える