2015-03-18 1 views
0

Я хочу выполнить поиск внутри группы и сравнить два значения и вернуть записи, в которых найдено совпадение для обоих. Например, если моя таблица выглядит, как показано ниже -Сравнение значений внутри группы в SQL

ID Country Account 
1  US  1111_AA 
1  US  1111 
2  AU  2222_BB 
2  HT  2222_BB 
3  DE  4444_CC 
3  DE  5555_DD 

В приведенном выше примере, я хочу, чтобы группа по ID, а затем проверить в группе, если значение страны и значение счета (за счет только первые 4 символа нужно посмотрите), затем верните идентификатор, где найдено совпадение. В этом случае запрос возвращает только ID 1.

Большое спасибо!

ответ

0

Вы можете сделать это с помощью объединения в ту же таблицу:

SELECT DISTINCT t1.ID 
FROM Accounts t1 
JOIN Accounts t2 
ON t2.ID = t1.ID 
AND t2.Country = t1.Country 
AND t2.Account <> t1.Account 
AND t2.Account = SubStr(t1.Account, 1, 4);