SQL-Code:
select ID
from TBL_PATDIAGNOSE
where (
select count(*) > 1
from TBL_PATDIAGNOSE AS x
where x.Patientnr = TBL_PATDIAGNOSE.Patientnr
and x.Datum = TBL_PATDIAGNOSE.Datum
and x.Suchwort = TBL_PATDIAGNOSE.Suchwort
and x.Anlage = TBL_PATDIAGNOSE.Anlage
)
oder
SQL-Code:
select ID
from TBL_PATDIAGNOSE
where exists(
select true
from TBL_PATDIAGNOSE AS x
where x.ID <> TBL_PATDIAGNOSE.ID
and x.Patientnr = TBL_PATDIAGNOSE.Patientnr
and x.Datum = TBL_PATDIAGNOSE.Datum
and x.Suchwort = TBL_PATDIAGNOSE.Suchwort
and x.Anlage = TBL_PATDIAGNOSE.Anlage
)
Und jetzt das ganze nur noch als
where ID in (...)
für das DELETE-Statement verwenden, aber vorer solltest du noch mindestens
jeweils einen der Datensätze in einem der WHERE ausschließen ... und zwar jeweils Jenen, welchen du behalten willst, ansonsten sind wirklich
alle Doppelten weg.
Oder so wie Union, der aber ruhig noch einen UNION hätte einbauen können
Der Vorteil bei "meinem" ist, daß man Dieses auch verwenden kann, um vorher zu Gucken, was man löschen würde ... falls man das mal wissen will.