【发布时间】:2011-01-26 03:47:27
【问题描述】:
我有下表,我正在尝试检测其跨度有中断的产品。
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
所以在这里我希望它报告 product3,因为我们缺少跨度
07/01/2011 - 09/31/2011
关于如何做到这一点的任何想法?
编辑: 甲骨文版: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
)
编辑 2 开始日期和结束日期不能重叠
编辑 3 跨度可以是任意两个日期,只要 price_end_date >= price_start_date。包括 Equal,因为产品可以销售一天。
【问题讨论】:
-
我们需要您的查询,以及可能涉及的表的
CREATE TABLE语句,以便能够为您提供帮助。还有 Oracle 的版本……为什么人们会支持一个不完整的问题?! -
开始日期和结束日期可以重叠吗?
-
你总是关心一年吗?假设我有一年的前 6 个月,但到年底什么都没有——这可能吗?例如,假设产品 3 只有第一条记录。应该举报吗?