我有一张主表,我正在存储医生的数据。 我有表HCP,医生来自不同的来源,并且正在存储。
RowID Name Professional_designation
1 Robert MD
1 Robert RN
2 Andy MD
在上表中,Robert的数据存在冲突,因为他不能同时在我们的系统中成为MD和RN。
问题: 我需要一个查询,它将为我提供ROWID列表,其中Professional_designation不匹配,但它们具有相同的rowid。 我相信自我加入将是必需的,但不是100%肯定。
答案 0 :(得分:1)
尝试此操作以获取所需的行ID
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
您可以使用自我加入在HCP表中获取不匹配的Professional_designation的医生记录列表,如下所示
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
答案 1 :(得分: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;