スクラブしたい次のようなデータがあると仮定します。
名 | 姓 | 会社名 | 都市 | 州
-------------------------------------------------- --------
ボブ | スミス | ABC | ニューヨーク | ニューヨーク | ニューヨーク
ボブ | スミス | ABC | ニューアーク | ニュージャージー州
ジェーン | アダムス | アクメ | シアトル | ワ
したがって、「それぞれの市と州」は「対応する行からランダムに選択された 1 つの市と州」を意味すると想定しています。これが実際に問題を困難にしています。
WITH [Names] AS (
SELECT DISTINCT [FirstName], [LastName], [CompanyName]
FROM Table1
)
INSERT INTO Table2 ([FirstName], [LastName], [CompanyName], [City], [State])
SELECT [FirstName], [LastName], [CompanyName], [City], [State]
FROM [Names]
CROSS APPLY
(
SELECT TOP 1 [City], [State]
FROM Table1
WHERE Table1.[FirstName] = [Names].[FirstName]
AND Table1.[LastName] = [Names].[LastName]
AND Table1.[CompanyName] = [Names].[CompanyName]
) [FirstRespectiveAddress]
「ランダムな行」がうまくいかない場合は、各人にどの都市と州を取るかを明示的に定義する必要があります。