Sql 选择一个字段中值相同但另一个字段中值不同的行

Sql 选择一个字段中值相同但另一个字段中值不同的行,sql,Sql,我有一个问题 SELECT clientcode, branchcode, maincode, name, actype, cycode FROM Master WHERE name IN (SELECT name FROM Master GROUP BY name HAVING Count(name

我有一个问题

SELECT clientcode, 
       branchcode, 
       maincode, 
       name, 
       actype, 
       cycode 
FROM   Master 
WHERE  name IN (SELECT name 
                FROM   Master 
                GROUP  BY name 
                HAVING Count(name) > 1) 
       AND isblocked <> 'C' 
       AND actype < '4E' 
ORDER  BY branchcode, 
          name, 
          actype, 
          cycode 
现在我需要从上述查询的输出中选择一行,其中名称相同,但ClientCode不同

例如,两行具有相同的名称,假设“BISHNU BHANDARI”,但它们应该具有不同的clinetCode,例如一行为“123”,另一行为“444”

试试看

SELECT min(clientcode), max(clientcode), count(distinct clientcode), 
       branchcode, 
       maincode, 
       name, 
       actype, 
       cycode 
FROM   master 
WHERE  name IN (SELECT name 
                FROM   master 
                GROUP  BY name 
                HAVING Count(name) > 1) 
       AND isblocked <> 'C' 
       AND actype < '4E' 
group by        branchcode, 
       maincode, 
       name, 
       actype, 
       cycode 
having 1 < count(distinct clientcode)
order by        branchcode, 
       maincode, 
       name, 
       actype, 
       cycode 
如果名称属于不同的分支代码等 您必须从group by中删除这些字段,并像我在上面的clientcode中那样选择聚合字段

SELECT min(clientcode), max(clientcode), count(distinct clientcode), 
       branchcode, 
       maincode, 
       name, 
       actype, 
       cycode 
FROM   master 
WHERE  name IN (SELECT name 
                FROM   master 
                GROUP  BY name 
                HAVING Count(name) > 1) 
       AND isblocked <> 'C' 
       AND actype < '4E' 
group by        branchcode, 
       maincode, 
       name, 
       actype, 
       cycode 
having 1 < count(distinct clientcode)
order by        branchcode, 
       maincode, 
       name, 
       actype, 
       cycode 
如果名称属于不同的分支代码等 您必须从group by中删除这些字段,并像我在上面的clientcode中那样选择聚合字段

SELECT min(clientcode), max(clientcode), count(distinct clientcode), 
       branchcode, 
       maincode, 
       name, 
       actype, 
       cycode 
FROM   master 
WHERE  name IN (SELECT name 
                FROM   master 
                GROUP  BY name 
                HAVING Count(name) > 1) 
       AND isblocked <> 'C' 
       AND actype < '4E' 
group by        branchcode, 
       maincode, 
       name, 
       actype, 
       cycode 
having 1 < count(distinct clientcode)
order by        branchcode, 
       maincode, 
       name, 
       actype, 
       cycode 
如果名称属于不同的分支代码等 您必须从group by中删除这些字段,并像我在上面的clientcode中那样选择聚合字段

SELECT min(clientcode), max(clientcode), count(distinct clientcode), 
       branchcode, 
       maincode, 
       name, 
       actype, 
       cycode 
FROM   master 
WHERE  name IN (SELECT name 
                FROM   master 
                GROUP  BY name 
                HAVING Count(name) > 1) 
       AND isblocked <> 'C' 
       AND actype < '4E' 
group by        branchcode, 
       maincode, 
       name, 
       actype, 
       cycode 
having 1 < count(distinct clientcode)
order by        branchcode, 
       maincode, 
       name, 
       actype, 
       cycode 
如果名称属于不同的分支代码等
您必须从group by中删除这些字段,并像我对上面的clientcode所做的那样将它们聚合起来。

您可以在having部分中添加一个附加子句:


如果clientcode可为null,并且您希望null满足不等式条件,则此操作可能不起作用,但这很容易添加进去。

您可以在having部分中添加一个附加子句:


如果clientcode可为null,并且您希望null满足不等式条件,则此操作可能不起作用,但这很容易添加进去。

您可以在having部分中添加一个附加子句:


如果clientcode可为null,并且您希望null满足不等式条件,则此操作可能不起作用,但这很容易添加进去。

您可以在having部分中添加一个附加子句:


如果clientcode可为null,并且您希望null满足不平等条件,则这可能不起作用,但这很容易添加。

请共享您的实际数据和期望输出。请共享您的实际数据和期望输出。请共享您的实际数据和期望输出。请共享您的实际数据和期望输出。请共享您的实际数据和期望输出。