我有一个带有Last name
和ID
的SQL Server 2012表。 ------------------------------
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
每个人都是唯一的,但由于历史Feed中的错误,不同的人被分配了相同的ID。
ID’s
在这种情况下,ID
1的人不同(姓氏明显不同),但他们的ID’s
相同。如何查询并获得结果?在这种情况下,表有数百万行。如果它是一个较小的表,我可能会使用count > 1
查询所有ID's
并在excel中过滤它们。
我要做的是,获取已分配给两个不同用户的所有此类{{1}}的列表。
非常感谢任何想法或帮助。
编辑:我不认为我很好地解决了这个问题。
有两个ID多次出现。 id为4的行是相同的。我不想在我的结果中这样做。 ID为1的行,虽然名字相同,但是1行的姓氏不同。我只想要那些ID相同但名字或名字不同的ID。
我尝试将多次出现的ID加载到临时表中,并尝试将其与父表进行比较,但未成功。我可以尝试和实施的任何其他想法吗?
答案 0 :(得分:3)
SELECT
ID
FROM
<<Table>>
GROUP BY
ID
HAVING
COUNT(*) > 1;
答案 1 :(得分:0)
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