3

個人や組織の名前と住所を取得するテーブルがあります。このテーブルでは、個人が 2 つの住所 (1 つは自宅、もう 1 つはビジネス) を持っているため、2 回戻ってくることがあります。また、アドレスが 1 つしかない場合もあります。

AccountNum     Name        Contact    AddressLine1        City    County    State    Zip        AddrType     IndivOrBuss
321          Dilbert Law   Mr.Dilbert   123 Merrwood     Pittsburgh   NULL       PA    15212      Home          Business
321          Dilbert Law   Mr.Dilbert   321 Dogbert Dr.  Pittsburgh   NULL       PA    15212      Bussiness     Business

このテーブルを取得して、別のテーブルに収まるように作成する必要がありますが、両方のアドレスを保持し、AccountNum ごとに 1 つの行しかありません。住所と一意のフィールドの両方を表示するには、行を結合する必要があります。次のようになります。

AccountNum     Name        Contact    AddressLine1        City       County  State   Zip        AddrType     IndivOrBuss   Address2Line1       2ndCity    2ndCounty 2ndState     2ndZip     2ndAddrTyp
321          Dilbert Law   Mr.Dilbert   123 Merrwood     Pittsburgh   NULL     PA    15212      Home          Business     321 Dogbert Dr.  Pittsburgh     NULL       PA         15212      Bussiness     

マージする必要のないものを保持しながら、マージにアプローチする方法がわかりません。

を使用して、マージする必要があるものを既にプルしました

FROM Address WHERE Address.[AccountNum] IN 
(Select Address.[AccountNum] 
   From Address
Group by Address.[AccountNum] 
   having count(*)>1);

これは、他の行にマージするための重複を見つけるための最良の方法ではないと確信しています。アイデアをいただければ幸いです。

4

1 に答える 1