wtorek, 12 stycznia 2010

Wyszukiwanie zdublowanych rekordów w bazie danych

Miałem za zadanie usunąć wszystkie zdublowane rekordy w jednej z tabel bazy danych. Napisałem więc takie zapytanie:

SELECT NrDok, Param1, Min(DokId)
FROM Dok AS D
WHERE Exists (SELECT Param1, NrDok, Count(DokId)
FROM Dok
WHERE Dok.Param1 = D.Param1
AND Dok.NrDok = D.NrDok
GROUP BY Dok.Param1, Dok.NrDok
HAVING Count(Dok.DokId) > 1)
GROUP BY Param1, NrDok

O zdublowaniu rekordu świadczą dane znajdujące się w kolumnie NrDok i Param1.

Brak komentarzy:

Prześlij komentarz