Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查询同一ID同一列中不同值的SQL表_Sql_Sql Server_Windows_Sql Server 2012_Querying - Fatal编程技术网

查询同一ID同一列中不同值的SQL表

查询同一ID同一列中不同值的SQL表,sql,sql-server,windows,sql-server-2012,querying,Sql,Sql Server,Windows,Sql Server 2012,Querying,我有一个SQL Server 2012表,其中包含ID、名字和姓氏。每个人的ID都是唯一的,但由于历史提要中的错误,不同的人被分配了相同的ID ------------------------------ ID FirstName LastName ------------------------------ 1 ABC M 1 ABC M 1 ABC M 1 ABC

我有一个SQL Server 2012表,其中包含ID、名字和姓氏。每个人的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为1的人是不同的,他们的姓氏明显不同,但他们有相同的ID。我如何查询并获得结果?本例中的表有数百万行。如果它是一个较小的表,我可能会查询计数大于1的所有ID,并在excel中过滤它们

我想做的是,得到一个所有这些ID的列表,这些ID已经分配给了两个不同的用户

任何想法或帮助都将不胜感激

编辑:我认为我没有很好地阐述这个问题

有两个ID多次出现。1和4。id为4的行是相同的。我不想在我的结果中出现这种情况。ID为1的行,虽然第一个名称相同,但第一行的姓氏不同。我只想要那些ID相同但其中一个名字或姓氏不同的ID


我尝试将多次出现的ID加载到临时表中,并尝试将其与父表进行比较,尽管没有成功。我还可以尝试实施其他想法吗?

您希望得到什么结果?对不起。我不是很清楚。刚刚编辑了问题,重读了你的问题后,我更加困惑了。您说过id为4的行是相同的。与您提供的数据相比,这不是真的。谢谢您的时间,但我正在寻找一些不同的东西。我意识到我的问题不完整。所以,我只是更新了它:谢谢你的时间,但我正在寻找一些不同的东西。我意识到我的问题不完整。所以,我刚刚更新了它:
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