0
我一直在嘗試在此工作幾天,並且找不到合適的解決方案。根據表2中的重複項更新記錄
我有2個表:
-Adgroups:包含與他們的uniqueAdgroupID和AdgroupName廣告組的列表。此表具有重複的名稱。
-Adgroup_Campaigns:包含具有uniqueCampaignID的廣告系列列表和來自table1的uniqueAdgroupId。
我需要做的就是找到表[廣告羣組的所有重複的名字,這是我做下面的查詢:
SELECT
o.[AdGroup_Id], o.[AdGroup]
FROM (
SELECT [AdGroup], COUNT(*) as intCount
FROM [dbo].[AdGroup]
GROUP BY [AdGroup]
HAVING COUNT(*) > 1
)
AS d
INNER JOIN [dbo].[AdGroup] o ON o.[AdGroup] = d.[AdGroup]
這將返回一個列表,如:
Adgroup_Id AdGroup
----------- ----------
1 PRE-MAS--v2-LP2
2 PRE-MAS--v2-LP2
5 PRE-MAS--v2-LP2
6 UNI-A-v2-LP2
8 UNI-A-v2-LP2
10 UNI-A-v2-LP2
16 PRE-UNI-v2-LP2
17 PRE-UNI-v2-LP2
20 PRE-UNI-v2-LP2
現在我過檢查表Adgroup_Campaigns所有記錄哪些AdGroupId在重複的廣告組列表中,我使用以下查詢:
SELECT * FROM
(
SELECT
o.[AdGroup_Id], o.[AdGroup]
FROM (
SELECT [AdGroup], COUNT(*) as intCount
FROM [dbo].[AdGroup]
GROUP BY [AdGroup]
HAVING COUNT(*) > 1
)
AS d
INNER JOIN [dbo].[AdGroup] o ON o.[AdGroup] = d.[AdGroup]
)
AS x INNER JOIN [dbo].[AdGroupCampaignMapper] t
ON t.[AdGroup_Id] = x.[AdGroup_Id]
它返回像一個列表:
Adgroup_Id AdGroup Campaign_Id
----------- --------- ------------
1 PRE-MAS--v2-LP2 1
2 PRE-MAS--v2-LP2 3
5 PRE-MAS--v2-LP2 5
6 UNI-A-v2-LP2 6
8 UNI-A-v2-LP2 7
10 UNI-A-v2-LP2 8
16 PRE-UNI-v2-LP2 9
17 PRE-UNI-v2-LP2 10
20 PRE-UNI-v2-LP2 11
所以我需要的是將實際更新表中字段Adgroup_Campaigns的adgroup_id所以每個組重複的有作爲的adgroup_id該組的第一個ID像這樣的查詢:
Adgroup_Id AdGroup Campaign_Id
----------- --------- ------------
1 PRE-MAS--v2-LP2 1
1 PRE-MAS--v2-LP2 3
1 PRE-MAS--v2-LP2 5
6 UNI-A-v2-LP2 6
6 UNI-A-v2-LP2 7
6 UNI-A-v2-LP2 8
16 PRE-UNI-v2-LP2 9
16 PRE-UNI-v2-LP2 10
16 PRE-UNI-v2-LP2 11
任何幫助將不勝感激。
謝謝,但實際上不工作,將從所有廣告組選擇最小的adgroup_id,並把它在所有的活動(做了測試我自己),你可以使用更新。 – victorgonal
@victorgonal ...我很抱歉錯列..我已經使用Adgroup_id更新了答案 – scaisEdge