テーブルPRODUCTSの製品レコードの重複をチェックするSQLクエリがあります。以下を除いて、ほとんどの場合、クエリは正常に機能します。
select * from products where
product_reg_no = 'AL-NAPT'
and (to_date('14-Aug-2001') BETWEEN to_date('27-Aug-2001') AND to_date('30-Aug-2001')
or to_date('31-Aug-2001') BETWEEN to_date('27-Aug-2001') AND to_date('30-Aug-2001'))
すべてのレコードをキャッチするためにこのクエリを作成するには、部分的または完全に重複していますか?
必要に応じて、サンプルレコードを含むテーブル構造を提供できます。
ありがとう
アップデート1
ここまたは以下のようにテーブル構造とレコードを追加しました。
create table products
(product_reg_no varchar2(32),
start_date date,
end_date date);
Insert into products
(product_reg_no, START_DATE, END_DATE)
Values
('AL-NAPT', TO_DATE('08/14/2012', 'MM/DD/YYYY'), TO_DATE('08/31/2012', 'MM/DD/YYYY'));
Insert into products
(product_reg_no, START_DATE, END_DATE)
Values
('AL-NAPT', TO_DATE('08/27/2012', 'MM/DD/YYYY'), TO_DATE('08/30/2012', 'MM/DD/YYYY'));
COMMIT;
2012年8月14日から2012年8月31日までの最初のレコードは、 2012年8月27日から2012年8月30日までの2番目のレコードと重複しています。では、クエリを変更して重複を取得するにはどうすればよいですか?