2017-06-30 15 views
0

以下のクエリでは、IDの最大値(この例では2)に対してCPNY_IDが1回だけ必要です。好ましくは、サブクエリを使用しないことをお勧めします。クエリのヘルプ:最大IDで繰り返し値を取得

- 編集開始 もし私が質問を言い換えることができれば、If、私はテーブルt_refとテーブルt_mainを結合するときに複数のマッチを得ています。最大のID値でt_refとの照合だけをします。 - 編集完了

もっと良いオプションをお勧めしますか?

create table t_main (id number, org_id number, aid number); 
insert into t_main values(1,100,10); 
insert into t_main values(2,200,20); 
insert into t_main values(3,300,30); 

create table t_ref (id number, cpny_id number, bid number); 
insert into t_ref values(1,100,10); 
insert into t_ref values(2,100,20); 
insert into t_ref values(3,300,30); 
insert into t_ref values(4,500,40); 

commit; 

select a.id, a.org_id, b.cpny_id from t_main a inner join t_ref b on a.aid = b.bid; 

--Result 
ID ORG_ID CPNY_ID 
1  100  100 
2  200  100 
3  300  300 

よろしくお願いいたします。

答えて

0

はこれを試してみてください:

SELECT MAX(a.id), MAX(a.org_id), b.cpny_id 
FROM t_main a 
INNER JOIN t_ref b 
ON a.aid = b.bid 
GROUP BY b.cpny_id 
+0

ありがとう、これは動作します。私はもう一つ質問があります。 ORG_IDにnumberの代わりにstring値がある場合はどうなりますか? –

+0

私は質問を言い換えることができる場合は、私はテーブルt_mainとそれを結合すると、テーブルt_refから複数の一致を取得しています。最大のID値でt_refとの照合だけをします。 –

+0

これにはいくつかのサンプルデータを提供する必要があります。 BTW FYI、Maxは文字列値で動作します。 –

関連する問題