所以这里有一个位的样本信息:SQL - 试图通过分区遍历查找重复
USE MyTable
GO
SELECT ROW_NUMBER() OVER (PARTITION BY AI.telephone1 ORDER BY AI.telephone1) AS Row
,AI.telephone1 AS [Main Phone #]
,AI.new_id AS [ID]
,AI.name AS [Account Name]
,AI.emailaddress1 AS [Email Address]
,AI.contactname AS [Primary Contact]
FROM AccountsInfo AI
WHERE AI.telephone1 IN (
SELECT telephone1
FROM MyDatabase.dbo.AccountsInfo AI
WHERE telephone1 != 'NULL'
AND telephone1 != '--'
GROUP BY telephone1
HAVING COUNT(*) > 1
)
ORDER BY telephone1
我需要什么:
ROW | PHONE | ID | NAME
_________________________________________
1 000-000-0000 3 Company1
2 000-000-0000 38 Company2
1 123-456-7890 0 Company3
2 123-456-7890 0 Company4
3 123-456-7890 0 Company5
1 197-865-4329 0 Company6
2 197-865-4329 18 Company7
1 654-987-1230 74 Company8
2 654-987-1230 2 Company9
1 951-753-8462 2 Company10
2 951-753-8462 3 Company11
3 951-753-8462 3 Company12
4 951-753-8462 3 Company13
这一信息是从表中使用下面的代码拉现在要做,但不能包裹我的头,遍历每个分区,并只提取匹配ID号的结果。请参见下面的什么,我想表看起来像到底...
PHONE | ID | NAME
_________________________________________
123-456-7890 0 Company3
123-456-7890 0 Company4
123-456-7890 0 Company5
951-753-8462 3 Company11
951-753-8462 3 Company12
951-753-8462 3 Company13
正如你可以看到,公司3,4,5它做的结果,因为他们三个有匹配的ID号和匹配的电话号码。公司11,12和13因为它们具有匹配的ID号而将它们划分出来。公司10没有被拉,因为它的ID号比11,12和13不同。
我需要做的是让代码遍历每个分区(按电话号码分区)并检查每行的ID号在分区中对分区中的其他行进行分区。最终结果将是只有其分区中其他地方的ID号重复的行。
如果您需要任何其他信息,请告诉我。
这看起来像它做到了!万分感谢! 我们得到了2万多个结果(这很好),所以我会报告回来,如果我调整了它。 –