2016-12-07 95 views
-1

不同的值,我有ID, First NameLast name的SQL Server 2012的表。 ID每个人都是唯一的,但由于历史Feed中的错误,不同的人被分配了相同的ID。查询SQL表中同一列具有相同的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的行虽然名称相同,但一行的姓氏不同。我只想要那些ID相同但名字或姓氏不同的ID。

我试图加载ID的具有多个事件到一个临时表,并试图把它和父表虽然不成功比较。任何其他想法,我可以尝试和实施?

+0

什么是你想要得到的结果呢? – DVT

+0

对不起。我不是很清楚。刚刚编辑了这个问题。 –

+0

重新阅读您的问题后,我更加困惑。你说“id 4的行是相同的”。与您给出的数据相比,这不是真的('DEF <> DEG')。 – DVT

回答

3
SELECT 
    ID 
FROM 
    <<Table>> 
GROUP BY 
    ID 
HAVING 
    COUNT(*) > 1; 
+0

谢谢你的时间,但我正在寻找不同的东西。我意识到我的问题并不完整。所以,我只是更新:) –

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 
+0

谢谢你的时间,但我正在寻找不同的东西。我意识到我的问题并不完整。所以,我只是更新它:) –

相关问题