У меня проблемы с выбором, который я не могу обернуть вокруг.У меня есть веб-интерфейс, в котором есть бизнес-правило, в котором диапазоны дат не могут перекрываться, и мне нужно идентифицировать их и удалить эти записи перед импортом, чтобы наш BU и обрабатывал их вручную.У меня есть 3 столбца Dealer_Number
, Date_From
и Date_To
.
Например, вы видите, что у меня есть 2 диапазона данных: с 11/01/2017 по 30/30/2017 и 11/01/2017 до NULL, которые технически перекрываются.
У меня также есть случаи, когда у меня есть диапазоны дат ниже, которые также перекрываются, которые мне нужно идентифицировать и удалить:
05/02/2017 to 07/16/2017
03/05/2017 to 08/03/2017

Я начал с нижеследующего, и я пытался использовать между и т. Д., Но не могу заставить его вернуть то, что я ожидаю:
SELECT
dealer_number, Date_From, Date_To
FROM
[MyTable]
WHERE
dealer_number = 'HD0421'
GROUP BY
dealer_number, Date_To, Date_From
HAVING
COUNT (Date_From) > 1
ORDER BY
dealer_number ASC
DDL
CREATE TABLE #tmp
(
Dealer_Number [NVARCHAR](255) NULL,
Date_From DATETIME NULL,
Date_To DATETIME NULL
)
INSERT INTO #tmp
VALUES ('HD0421', '11/01/2017', '11/30/2017'),
('HD0421', '11/01/2017', '11/30/2017'),
('HD0421', '11/01/2017', '11/30/2017'),
('HD0421', '11/01/2017', '11/30/2017'),
('HD0421', '11/01/2017', NULL),
('HD0421', '11/01/2017', NULL),
('HD0421', '11/01/2017', NULL),
('HD0421', '11/01/2017', NULL),
('HD0421', '12/01/2017', '01/25/2018'),
('DRE456', '05/12/2017', '11/12/2017') ,
('DRE456', '11/13/2017', '12/12/2017'),
('DRE456', '01/12/2017', '06/12/2017'),
('DRE456', '05/12/2017', '11/12/2017');
Любая помощь приветствуется!