J'ai 2 tables, une TableA parent et une TableB enfant. La TableB contient un ou plusieurs enregistrements dont le parent se trouve dans la TableA. J'ai besoin de supprimer tous les enregistrements de TableB sauf le plus ancien, c'est-à-dire tous les doublons de TableB. Je ne pense pas que la TableA doive être impliquée dans la déclaration mais je l'inclus juste pour référence.
TableA
_______
SecID, SecName
1, Sec1
2, Sec2
3, Sec3
4, Sec4
TableB
_________
IncID, SecID, PayDate
16, 1, 11/03/2011
17, 1, 11/04/2011
18, 2, 10/01/2011
19, 3, 01/06/2011
20, 3, 01/09/2011
21, 3, 01/12/2011
22, 4, 10/06/2011
Ainsi, dans le tableau B ci-dessus, je dois supprimer les enregistrements 17, 20 et 21, laissant un enregistrement pour chaque SecID. Jusqu'à présent, j'ai obtenu les résultats suivants, mais pour une raison quelconque, ils incluent l'enregistrement le plus ancien, que je veux conserver :
delete from TableB where PayDate not in (
select min(PayDate)from TableB
having ( count(PayDate) > 1 )
)