Запрос для поиска перекрывающихся десятичных диапазонов
Мне нужно выяснить перекрывающиеся десятичные диапазоны. Ниже приведена структура моей таблицы.
id FromValue ToValue Condition 1 10 15 Between 2 16 NULL Equals 3 6 9 Between 4 17 19 Between 5 16 NULL Greater Than.
Когда я вставляю строку 5. Я не должен быть в состоянии вставить, потому что уже существует диапазон между 17 и 19. Когда я пытаюсь вставить больше 16, это не должно позволять.
То же самое условие применимо и к меньшему, чем условие. Если я попытаюсь вставить меньше 6. Он не должен позволять мне вставлять, потому что диапазон от 6 до 9 уже существует.
Пожалуйста, помогите мне с SQL-запросом.
[edit]добавлен блок кода-OriginalGriff [/edit]
Что я уже пробовал:
declare @fromValue decimal(18,5) declare @toValue decimal(18,5) select * from RangeTest where (fromValue is not null and toValue is not null ) and ( (fromValue >= @fromValue and toValue = @fromValue ))
CHill60
Логика проверки диапазонов не совсем ясна. Если бы вы могли объяснить, чего вы на самом деле пытаетесь достичь, или откуда вы получаете данные для вставки в таблицу?