2017-02-13 2 views
1

У меня есть мастер-таблица, где хранятся данные врача. У меня есть таблица HCP, где врач из разных источников и хранится.Таблица основных данных: Идентификация неправильной записи

RowID Name Professional_designation 
1  Robert MD 
1  Robert RN 
2  Andy MD 

В приведенной выше таблице есть противоречивые данные для Роберта, поскольку он не может быть MD и RN в нашей системе в то же время.

Вопрос: Мне нужен запрос, который предоставит мне список ROWID, где Professional_designation не подходит, но у них одинаковые rowid. Я считаю, что самообслуживание потребуется, но не на 100% уверен.

ответ

1

попробовать это, чтобы получить нужную строку идентификаторами

SELECT ROWID,Name 
FROM 
(
SELECT ROwID,Name, 
     ROW_NUMBER() OVER(PARTITION BY ROWID,Name ORDER BY Professional_designation) as seqNum 
FROM HCP 
) Tmp 
WHERE seqNum > 1 

Вы можете получить список врачей записей с не согласующего Professional_designation в HCP таблице с помощью автообъединение, как показано ниже

select t1.* from HCP t1 
join HCP t2 on t1.RowID = t2.RowID and t1.Name=t2.Name 
where t1.Professional_designation<>t2.Professional_designation 
+0

Второй запрос работает нормально. –

+0

FROM ключевое слово дает ошибку.FROM ключевое слово не найдено ожидаемых результатов –

+0

в первом запросе? –

0

Да вы можете сделать он использует самосоединение.

select distinct h1.Row_id from hcp h1 join hcp h2 on h1.name=h2.name where h1.row_id=h2.row_id and h1.Professional_designation != h2.Professional_designation; 
Смежные вопросы