2016-04-18 2 views
-1

Я хочу сравнить 2 или более строк в sql.Запрос, который сравнивает 2 или более записей таблицы

У меня есть стол ABC. Он имеет первичный ключевой столбец id. Он имеет еще две колонки, id2 и startdate.

Я хочу найти все те id s, у которых startdate отличается от id2. id2 - это просто расширение идентификатора.

Например, если id является 123, то id2 является 123-1.

ОБНОВЛЕНИЕ: Пример в соответствии с комментарием OP в

Если таблица имеет

 
id  id2 startdate 
123-1 123 0408 
123   0408 
124   0508 
124-1 124 0608 

запрос должен отображать

 
id  id2 startdate 
124   0508 
124-1 124 0608 

, где StartDate отличается.

+1

Пожалуйста, передают данные выборки и ожидаемый результат. –

+2

Также пометьте используемые dbms. – jarlh

+0

, если таблица имеет ID/id2/StartDate 123-1/123/0408 123 // 0408 124 // 0508 124-1/124/0608 , как показано выше. quesry должен отображать 124 // 0508 124-1/124/0608 где стартовая разность – user3528745

ответ

0

Вы ищете записи, для которых существует другой запись с другой StartDate:

select * 
from mytable 
where exists 
(
    select * 
    from mytable other 
    where (other.id = mytable.id2 or other.id2 = mytable.id) 
    and other.startdate <> mytable.startdate 
);