Ciao a tutti,
avrei la necessità di eliminare da una tabella dei duplicati
La tabella ha questa struttura
Id, DocumentId, PartageId, EstActif, CreationDate, ModificationDate, PartageDate, EstFormatPdf
Io vorrei trovare tutti i duplicati per DocumentId, PartageId.
Per fare questo avrei usato questa select
WITH TempTab1
AS
(
SELECT DocumentId,PartageId, ROW_NUMBER() OVER(PARTITION by DocumentId,PartageId ORDER BY Id )
AS duplicateRecCount
FROM dbo.AccesDocument
)
select * from TempTab1 where duplicateRecCount > 1
dunque
DELETE FROM TempTab1 WHERE duplicateRecCount > 1;
Il mio problema e che ho una tabella correlata che si chiama HistoriqueDocument con questi campi
Id, DocumentId, Date, TypeActionHistoriqueId, ProfilId, Data
e correlata da campo DocumentId
quello che vorrei fare é cancellare il duplicato dalla tabella AccesDocument che abbia pero il record in HistoriqueDocument con la Date più vecchia
Quindi deve restare il duplicato AccesDocument più nuovo
Per cancellare AccesDocument devo pero anche cancellare tutti i record in HistoriqueDocument quindi prima basandomi sulla select con join precedente eliminare tutti i record in HistoriqueDocument con stesso idDocument
Potete darmi qualche suggerimento?
Grazie
http://www.fuossbook.it