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满足不平等条件,则这可能不起作用,但这很容易添加。请共享您的实际数据和期望输出。请共享您的实际数据和期望输出。请共享您的实际数据和期望输出。请共享您的实际数据和期望输出。请共享您的实际数据和期望输出。