次のサンプルクエリがあります。
select o.ENTRY_ID, o.DESCRIPTION, o.ENTRY_DATE, l.COMPANY_ID
from TABLE1 o, TABLE2 l
where o.ENTRY_ID = l.ENTRY_ID
and COMPANY_ID in (10, 11, 12, 13)
次のような一連のデータが返されます。
ENTRY_ID, DESCRIPTION, ENTRY_DATE, COMPANY_ID
1, Description 1, 2/12/2008, 10
2, Description 2, 2/12/2008, 10
3, Description 3, 2/10/2008, 10
4, Description 4, 2/11/2008, 10
4, Description 4, 2/11/2008, 11
4, Description 4, 2/11/2008, 12
4, Description 4, 2/11/2008, 13
エントリが複数の会社に関連付けられている場合、このクエリは、関連付けられている会社ごとに同じエントリを 1 回返します。
クエリを COMPANY_ID で区別して、エントリが複数の会社に関連付けられている場合に 1 回だけ返されるようにしたいと考えています。
返してほしい結果セットは次のとおりです。
ENTRY_ID, DESCRIPTION, ENTRY_DATE, COMPANY_ID
1, Description 1, 2/12/2008, 10
2, Description 2, 2/12/2008, 10
3, Description 3, 2/10/2008, 10
4, Description 4, 2/11/2008, 10
ただし、次の場合も同様に許容されます。
ENTRY_ID, DESCRIPTION, ENTRY_DATE, COMPANY_ID
1, Description 1, 2/12/2008, 10
2, Description 2, 2/12/2008, 10
3, Description 3, 2/10/2008, 10
4, Description 4, 2/11/2008, 11
個別の ENTRY_ID が必要です。現在取得している結果セットでは、ENTRY_ID を持つ 4 つのエントリを取得しています。これは、4 つの異なる企業がそのエントリを共有しているためです。エントリーを複数の会社で共有する場合、エントリーを 1 つだけ返してほしい。