在具有相同ID的同一列中查询具有不同值的SQL表

我有一个带有ID, First NameLast nameSQL 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