在SQL中查找日期范围重叠的记录

卢卡斯

我有以下表格和数据:

CREATE TABLE customer_wer(
  id_customer NUMBER,
  name VARCHAR2(10),
  surname VARCHAR2(20),
  date_from DATE,
  date_to DATE NOT NULL,
  CONSTRAINT customer_wer_pk PRIMARY KEY (id_customer, data_from));

INSERT INTO customer_wer VALUES (4, 'Karolina', 'Komuda', '01-JAN-00', '31-MAR-00');
INSERT INTO customer_wer VALUES (4, 'Karolina', 'Komuda', '01-APR-00', '30-JUN-00');
INSERT INTO customer_wer VALUES (4, 'Karolina', 'Komuda', '15-JUN-00', '30-SEP-00');
INSERT INTO customer_wer VALUES (4, 'Karolina', 'Komuda', '01-OCT-00', '31-DEC-00');
INSERT INTO customer_wer VALUES (4, 'Karolina', 'Komuda', '01-JAN-01', '31-MAR-01');
INSERT INTO customer_wer VALUES (4, 'Karolina', 'Komuda', '01-APR-01', '30-JUN-01');
INSERT INTO customer_wer VALUES (4, 'Karolina', 'Komuda', '01-JUL-01', '5-OCT-01');
INSERT INTO customer_wer VALUES (4, 'Karolina', 'Komuda', '01-OCT-01', '31-DEC-01');

我需要SELECT查询来查找具有重叠日期的记录。这意味着在上面的示例中,我应在结果中包含四个记录

number 
2
3
7
8

先感谢您。我正在使用Oracle DB。

乔基·纳库里(Giorgi Nakeuri)

尝试这个:

select * from t t1
join t t2 on (t1.datefrom > t2.datefrom and t1.datefrom < t2.dateto)
          or (t1.dateto > t2.datefrom and t1.dateto < t2.dateto)

谢谢你的这个例子。修改后,它可以正常工作:

SELECT *
FROM customer_wer k
JOIN customer_wer w
ON k.id_customer = w.id_customer
WHERE (k.date_from > w.date_to AND k.date_from < w.date_to)
OR (k.date_to > w.date_from AND k.date_to < w.date_to);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在SQL中合并具有重叠日期范围的记录

来自分类Dev

在SQL中合并具有重叠日期范围的记录

来自分类Dev

在PL / SQL中查找重叠范围

来自分类Dev

在Oracle SQL中根据重叠的日期范围连接客户端记录

来自分类Dev

在两个表中查找重叠的日期范围

来自分类Dev

查找日期范围之间的记录

来自分类Dev

查找日期范围之间的记录

来自分类Dev

根据日期范围查找记录

来自分类Dev

在SQL中检测和合并日期范围的连续重叠

来自分类Dev

SQL中的重叠日期

来自分类Dev

使用日期范围查找日期范围的SQL

来自分类Dev

查找特定用户MySQL在同一张表中的日期范围重叠

来自分类Dev

查找日期范围之间的丢失记录

来自分类Dev

查找跨越记录的日期范围之间的差距

来自分类Dev

SQL查找缺少的日期范围

来自分类Dev

根据 R 中的位置查找重叠范围

来自分类Dev

基于SQL(Oracle)中预定义的日期范围的组记录

来自分类Dev

根据T-SQL中的日期范围运行记录总数

来自分类Dev

在postgres中合并日期范围以消除重叠

来自分类Dev

查找我的SQL表中可用的日期范围

来自分类Dev

日期范围从多个记录(重叠)的工作日总数

来自分类Dev

日期范围从多个记录(重叠)的工作日总数

来自分类Dev

查找小时范围是否重叠(与日期无关)

来自分类Dev

查找重叠的日期范围,并添加相应的效果指标以衡量效率

来自分类Dev

查找日期是否在N对列表中重叠

来自分类Dev

SQL:查找具有给定日期范围内每月数据的记录

来自分类Dev

SQL:查找具有给定日期范围内每个月的数据的记录

来自分类Dev

在2个列表中查找重叠的日期并返回重叠的期间

来自分类Dev

多次重叠的日期范围

Related 相关文章

热门标签

归档