0
我試圖通過與所有其他活躍的組進行比較來確定可以在組94中找到多少個重複的工作電話。使用cte通過與其他組比較來查找重複的電話
- 聯繫人正在使用的GroupId
- 的ContactTable只包含IDS和NOT電話
- 的DetailedContactTable包含手機
- 的ContactSummaryTable包含組狀態
的SQL,則通過設置ROWNUMBER工作分組對於每個重複的工作電話> 1.
問題是除了94以外,所有組別的人數均大於1。我首先需要知道94。任何想法如何設置rownumber> 1爲重複在GroupId 94首先?
DECLARE @GroupID Int
SET @GroupID = 94
;WITH cte AS
(
SELECT ROW_NUMBER() OVER (PARTITION BY d.WorkPhone ORDER BY c.id DESC)
AS rownumber
,d.WorkPhone
,c.id
,GroupID
FROM ContactTable c
INNER JOIN DetailedContactTable d
ON c.DetailedContactId = d.id
WHERE c.GroupID IN
(
SELECT id
FROM ContactSummaryTable WHERE id = @GroupID
OR GroupActive = 1
)
AND NOT d.WorkPhone IS NULL
AND d.WorkPhone <> ''
)
SELECT * FROM cte WHERE rownumber > 1
ORDER BY GroupID;
WHERE ID = @GroupID AND GroupActive = 1不能與與被設置。因爲我試圖將其他組與94比較,而不是94與94比較。 –
(1)因此,您想要從GroupID <> 94中找到GroupID = 94的所有工作電話嗎? (2)或者您想查找GroupID => 94中存在的所有來自GroupID = 94的重複工作電話嗎? –
我想比較所有其他活動組的GroupId = 94。 –