我有一个名为的表PRODUCTS
,每个表PRODUCT_NO_REGISTRATION_NO
只允许使用一次,即产品开始日期和退货日期不应冲突。
我们退回产品并输入退货日期ACTUAL_RETURN_DATE
,如果ACTUAL_RETURN_DATE
为空,我们将END_DATE
其作为退货日期。
你可以在这里看到记录
例如PRODUCT_NO_REGISTRATION_NO is clashing, as HP_2014 is returned on 18-Jun-2001, however HP_2012 same PRODUCT_NO_REGISTRATION_NO is allotted on 18-Jun-2001.
如何使用 sql 找出记录是否重叠?
更新 1
表中进行了修改PRODUCTS
以包含PRODUCT_EXTENSION_NO
. 的组合PRODUCT_NO,PRODUCT_NO_REGISTRATION_NO and PRODUCT_EXTENSION_NO
成为唯一的行(复合主键)。
规则如下 每个PRODUCT_NO_REGISTRATION_NO
只允许使用一次,即产品开始日期和退货日期不应冲突。
我们退回产品并输入退货日期ACTUAL_RETURN_DATE
,如果ACTUAL_RETURN_DATE
为空,我们将END_DATE
其作为退货日期。
PRODUCT_NO
有扩展,所以END_DATE
是扩展的。
例如,如果您看到记录
PRODUCT_NO
- ORP76
with PRODUCT_EXTENSION_NO
-与- with -1
发生冲突。PRODUCT_NO
ORP100
PRODUCT_EXTENSION_NO
0
如何使用 sql 找出记录是否重叠,PRODUCT_NO
但是否允许扩展。ie PRODUCT_NO
ORP76
with extension0
和extension 1基本上都是扩展的。