私は2つのことをする方法を理解しようとしています:
- テーブル内の重複レコードを見つけます。
これらは通常、「名前」列の重複した名前ですが、具体的には、ParentIDが同じ名前です。これらの名前(またはChildren)は異なる親に属しているため、ParentIDが異なる同じ名前を持っていても問題ありません。
- これらの重複を変更します。
できれば、名前に「ID」を追加して、これらの重複を変更します。
重複を見つけるためのクエリを思いついたので、それらを一時テーブルにダンプします。
CREATE TABLE #Dup(
Name varchar(50),
CustNo varchar(7))
insert into #Dup (Name, CustNo)
SELECT [Name],[CustNo]
FROM [02Kids]
GROUP BY [Name], [CustNo]
HAVING Count(*)>1
これはうまくいくようです。テーブルのデータを表示すると、名前が表示され、ParentIDがそれを識別していることがわかります。これは、その親IDに対して2回表示される名前です。名前がテーブルに1回だけ表示されることは注目に値します。同じ名前とIDの2つの行が表示されません(おそらくこれは私の問題の一部です)。
これが私が修正を実行しようとして思いついたクエリです:
select[#Dup].[Name] + ' ' + [02Kids].[ID] as iName, [02Kids].ParentID
from #Dup
inner join [02Kids]
on #Dup.CustNo = [02Kids].ParentID
order by iName asc
まあ、私が大量の重複で終わることを除いて、この種の作品。たとえば、2つの重複しかないことを確認できる1つの「名前」は、その選択クエリから合計で13に近くなります。
私はそのクエリ(これは私が自分自身を教えるために使用している練習用のものです)でここから離れているかもしれませんが、これを行うための正しい手段を考えるのに苦労しています。私はまだ構文、キーワード、関数などを学んでいるので、まだ知らないものを使用する必要があるかもしれません。