2013-05-30 3 views
0

У меня есть таблица с данными с колонками: CD, beginDate, endDate. суффикс. Мне нужно определить, есть ли какая-либо строка, которую я хочу вставить, beginDate раньше, чем endDate, в любой другой строке с тем же значением суффикса.Определите, соответствует ли дата начала до окончания даты

код с тем, что я не пытаюсь и не повезло:

select * from data a1 
join data a2 on a2.cd=a1.cd 
where 
    a1.suffix=a2.suffix and 
    a1.beginDate<a2.endDate 

Любая идея, горячий я могу это сделать? Заранее спасибо

+0

Извините, но ваше описание сказать, что есть одна таблица, но есть 2 таблицы в SQL. Пожалуйста, сделайте вопрос более ясным. И если вы можете добавить несколько примеров входных и выходных данных. – Parandroid

+0

@Parandroid есть одна таблица, и мне нужно выбрать все данные из таблицы, где beginDate находится перед startDate, а значение суффикса то же самое – Brezhnews

+0

То же самое, что и что? И почему вы присоединяетесь к таблице a2 в своем SQL, какая вторая таблица a2? – Parandroid

ответ

1

Вы хотите неравенство на состояние кд в соединении:

... BeginDate раньше, чем ENDDATE в любой другой ряд с же значением суффикса.

Вы также можете поместить все условия в предложении ON джойна:

select a1.cd, a2.cd, a1.suffix, a1.beginDate, a2.endDate 
from data a1 
join data a2 
on a2.cd <> a1.cd 
and a1.suffix = a2.suffix 
and a1.beginDate < a2.endDate 
Смежные вопросы