먼저 당신이 가지고 : 당신이 전체 그룹이있는 경우는 즉시 삭제에 대한 것, 또는
UPDATE TableA
SET locationID = foundLocationID1
WHERE locationID = foundLocationID2
: 당신이 TableB의에서 삭제하기 전에 따라서, 당신은 TableA의를 업데이트 할 수 있습니다 TableB에서 중복을 제거하기 전에 TableA를 업데이트하십시오. 그렇지 않다면 정보를 잃을 것입니다. 그 후
는, 하나 개의 필드에서 동일한 테이블 B의 모든 중복을 모두 그들 중 하나 LocationID를 선택하고
을 (의이 LocationDescription을 가정 해 봅시다). MIN Location ID를 말하자.
그런 다음 해당 MinID로 tableA를 업데이트 한 다음 TableB에서 중복을 매우 쉽게 (NOT in과 함께) 제거하십시오.
Here's 예 :
이 후
TableA: Table B
Location ID LocationId LocationDescription
1 1 Neuquen
2 2 Cipolletti
3 3 Neuquen
4 4 Cipolletti
5 5 Neuquen
UPDATE TableA
SET locationID=TABLEBAUX.UniqueID
FROM TableA
INNER JOIN
(
SELECT UniqueID, LocationID
FROM
(SELECT MIN(LocationID) as UniqueID,LocationDescription
FROM TableB
GROUP BY LocationDescription) TEMP
INNER JOIN TableB
ON TEMP.LocationDescription=TABLEB.LocationDescription) TABLEBAUX
ON TableA.LocationID=TABLEBAUX.LocationID
DELETE FROM TableB
WHERE LocationID NOT in (SELECT LocationID FROM TABLEA)
을 Asumming이 얻을 :
내가 필요 정확히
TableA: Table B
Location ID LocationId LocationDescription
1 1 Neuquen
2 2 Cipolletti
1
2
1
, 감사합니다! – julian
도와 드리겠습니다. – Claudia