Tôi có bảng sau đây và tôi đang cố gắng phát hiện các sản phẩm bị gián đoạn trong các nhịp của nó.Oracle SQL: Phát hiện các gián đoạn trong các khoảng liên tục
Product | unit_Cost | price start date | price end date
--------------------------------------------------------------------------
product 1 15.00 01/01/2011 03/31/2011
product 1 15.00 04/01/2011 06/31/2011
product 1 15.00 07/01/2011 09/31/2011
product 1 15.00 10/01/2011 12/31/2011
product 2 10.00 01/01/2011 12/31/2011
product 3 25.00 01/01/2011 06/31/2011
product 3 25.00 10/01/2011 12/31/2011
Vì vậy, ở đây tôi muốn nó báo cáo lại product3 bởi vì chúng ta đang thiếu khoảng
07/01/2011 - 09/31/2011
Bất kỳ ý tưởng về làm thế nào tôi có thể làm điều này?
EDIT: Oracle Ver: 10g
Create Table Statement
CREATE TABLE Sandbox.TBL_PRODUCT
(
PRODUCT_ID VARCHAR2(13 BYTE),
PRODUCT VARCHAR2(64 BYTE),
UNIT_COST NUMBER,
PRICE_START_DATE DATE,
PRICE_END_DATE DATE
)
EDIT 2 ngày bắt đầu và ngày kết thúc không thể chồng lên nhau
EDIT 3 một khoảng có thể hai ngày bất kỳ miễn là price_end_date> = price_start_date. Bằng nhau được bao gồm kể từ khi một sản phẩm có thể được bán trong một ngày.
Chúng tôi cần truy vấn của bạn và có khả năng là câu lệnh 'CREATE TABLE' cho (các) bảng liên quan, để có thể trợ giúp bạn. Và phiên bản Oracle ... Tại sao mọi người upvoting một câu hỏi chưa hoàn chỉnh ?! –
Ngày bắt đầu và ngày kết thúc có thể trùng lặp không? – DCookie
Bạn luôn quan tâm đến một năm? Và giả sử tôi có 6 tháng đầu năm, nhưng không có gì qua cuối năm - có khả thi không? Ví dụ, giả sử sản phẩm 3 chỉ có bản ghi đầu tiên. Nó có nên được báo cáo không? – DCookie