20. oktober 2016 - 11:55Der er
9 kommentarer og 1 løsning
Find dubletter og returnér dublét ID nummer
Mit datasæt består af XX antal mailadresser I en database - jeg har behov for at identificerer dubletter I form af at dubletterne nummerreres sætvis i forhold til de dubletter der findes I datasættet.
Eksempel :
Mailadresse ID XXX@XXX ID 01 YYY@YYY ID 02 ZZZ@ZZZ ID 00 XXX@XXX ID 01 YYY@YYY ID 02
Alle mailadresser som kun optræder een gang får samme ID indtil de begynder at optræde som dublét I mit datasæt ....
Jeg har brugt denne form for SQL udtræk til at finde dubletter med i min MySQL database. Prøv se om du kan det samme ved at rette eksempel nedenfor så det passer til dit. Eksempel SELECT * FROM TableMailAdresser GROUP BY kolonneMail HAVING (count(kolonneMail)) != 1
Opret en sum-forespørgsel, der summerer på email adressen. Løb så denne igennem med VBA og tildel numre til de tilsvarende poster i din tabel. Noget i denne stil:
Sub TildelNumre() Dim Db As Database Dim Rst As Recordset Dim i As Integer
i = 1 DoCmd.SetWarnings False Set Db = CurrentDb Set Rst = Db.OpenRecordset("SumForespørgsel", dbOpenSnapshot) With Rst If Not .EOF Then Do DoCmd.RunSQL "UPDATE Tabel1 SET ID1=" & i & " WHERE Mailadresse='" & !Mailadresse & "'" i = i + 1 .MoveNext Loop Until .EOF End If .Close End With DoCmd.SetWarnings True Set Rst = Nothing Set Db = Nothing End Sub
So far so good ... går ud fra at det virker ... det tager bare lidt tid at behandle 4 mio rækker :-) ......
Næste gang jeg skal opdatere tabellen er der kommet nye mailadresser til ... disse skal også grupperes/nummereres, men denne nummerering skal fortsætter hvor, ikke starte på ny og ikke omdøbe den hidtidige nummerering !!!
The entire row is unique .... showing orders on different products, - my purpose is to - based upon customer email - create a unique customer #num id use this for GROUP BY purposes instead of the entire email address :-)
OK. 4 mio poster. Det var jo lidt svært at gætte ud fra dit lille eksempel ;O)
Hvorfor ikke opsamle emailadresserne i en separat tabel, som også indeholder et kundenr. (autonummerering felt)? Så skal du bare løbende tilføje nye emailadresser; men det er jo en simpel forespørgsel. (Og numrene tildeles automatisk)
Opret så en forespørgsel, der linker ordrerne til den nye tabel via emailadressen. Det giver vel det resultat, du leder efter. Eller hvad?
fdata > det er ok ikke at bruge mere tid på det, jeg har fårt bevis for at det er en mulig vej - blot ikke en opgave som Acces vil være særligt egnet til, men din SQL kan let implemeteres på vores SQL server / datawarehouse
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.