質問: 一度のsql発行で結果を得るにはどのようなsqlにすれば良いでしょうか 一度のsql発行で結果を得るにはどのようなsqlにすれば良いでしょうか? データベースはoracleです。 二つの履歴テーブルがあり、それぞれ主キーは「連番」です。 連番が最も大きい値の社員番号と社員名を取得しようとしています。 (他にもカラムはありますが質問では省略しています。) 連番は別に管理テーブルがあり、そちらから採番しているので 二つのテーブルで連番が重複することはありません。 【rireki_tbl_a】 連番 number(10) 社員番号 varchar(7) 社員名 nvarchar(20) 【rireki_tbl_b】 連番 number(10) 社員番号 varchar(7) 社員名 nvarchar(20)
回答: select 連番,社員番号,社員名 from (select 連番,社員番号,社員名 from rireki_tbl_a union all select 連番,社員番号,社員名 from rireki_tbl_b) as ta where ta.連番 in (select max(連番) from(select 連番 from rireki_tbl_a union all select 連番 from rireki_tbl_b) ) ですかね。。 試してませんが。 aとbの最大で大きい方ということですよね 両方の最大ならもっと簡単ですし。