我有一个带有ID, First Name
和Last name
的SQL Server 2012表。 该ID
是每个人唯一的,但由于历史饲料的错误,不同的人被分配相同的ID。
------------------------------ ID FirstName LastName ------------------------------ 1 ABC M 1 ABC M 1 ABC M 1 ABC N 2 BCD S 3 CDE T 4 DEF T 4 DEG T
在这种情况下, ID's
1的人是不同的(他们的姓氏明显不同),但是他们具有相同的ID
。 我如何查询并得到结果? 这种情况下的表格有数百万行。 如果它是一张小桌子,我可能会用count > 1
查询所有ID's
,然后用excel进行过滤。
我想要做的是,得到所有这样的ID's
分配给两个不同的用户的列表。
任何想法或帮助将非常感激。
编辑:我不认为我很好地框架的问题。
有两个ID是多次出现的。 1和4. id为4的行是相同的。 我不想在我的结果。 ID为1的行虽然名字相同,但是最后一个名字对于1行是不同的。 我只想要那些身份证号相同,但名字或姓氏不同的身份证号码。
我尝试加载ID有多个事件到一个临时表,并试图比较它与父表,虽然不成功。 任何其他想法,我可以尝试和实施?
SELECT ID FROM <<Table>> GROUP BY ID HAVING COUNT(*) > 1;
SELECT * FROM myTable WHERE ID IN ( SELECT ID FROM myTable GROUP BY ID HAVING MAX(LastName) <> MIN(LastName) OR MAX(FirstName) <> MIN(FirstName) ) ORDER BY ID, LASTNAME