私はすでにこれを数日間作業しようとしていましたが、適切な解決策を見つけることができません。テーブル2の重複に基づいてテーブル1のレコードを更新します。
私は2つのテーブルをしました:
-Adgroups:そのuniqueAdgroupIDとAdgroupNameと広告グループのリストが含まれています。このテーブルには重複した名前があります。
-Adgroup_Campaigns:uniqueCampaignIDを持つキャンペーンのリストと、table1のuniqueAdgroupIdが含まれています。
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
今私が交差:
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_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