Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: itil07 am Juli 25, 2011, 14:08:03

Titel: redundantsen entfernen
Beitrag von: itil07 am Juli 25, 2011, 14:08:03
Hallo,

bin gerade etwas am verzweifeln...
habe gerade gemerkt, das in einer meiner wichtigsten dateien so gut wie jeder eintrag doppelt, wenn nciht dreifach, vierfach, fünfach etc. eingetragen ist. wäre ja ansich noch nicht kompliziert. wennd ie immer gleich hießen würden.. was sie leider nicht tun :-(

ABER hier ein Beispiel am Kandidaten "Firma X" diese gibt es in folgenden Varianten:
Firma x
firma x gmbh
firma x gesmbh
frima x
frima x gesmbh
firma x gesellschaft mb haftung

... usw.

vorteil, meistens in die adresse ident (meistens),
machmal ist gar keine adresse eingetragen
die steuernummer ist immer gleich, jedoch nicht all zu oft eingetragen
gleiches für postleitzahl, geschäftsführer usw.

wie kann ich das am besten lösen?

programmieren?
if firmenname1 = firmenname2 XOR firmenname1.ort = firmenname2.ort usw?

bin echt überfragt und hoffe ihr könnt mir helfen, danke schon mal!!
Titel: Re: redundantsen entfernen
Beitrag von: Hondo am Juli 25, 2011, 14:37:35
Hallo,
hast du einen eindeutigen ID hilft dir eine Abfrage in dieser Art:
DELETE DISTINCTROW T1.*, T1.ID
FROM   DeineTabelle AS T1
       INNER JOIN DeineTabelle AS T2
       ON  T1.DeinGleichesFeld  = T2.DeinGleichesFeld
       AND T1.DeinGleichesFeld1 = T2.DeinGleichesFeld1
WHERE  T1.DeineID>T2.DeineID;

DeinGleichesFeld... sind die Felder wo Identische Werte stehen, also Adresse, Hausnummer, PLZ, Ort, etc.
DeineID  ist ein ID-Feld, vorzugsweise mit Autowert als Datentyp wo keine doppelten Werte vorkommen.

Mach aber vor dem Löschen eine Kopie deiner Tabelle!!
Gruß Andreas
Titel: Re: redundantsen entfernen
Beitrag von: itil07 am Juli 25, 2011, 14:57:34
hallo,

ja ich habe eine ID bzw. kann ja auch eine neue machen. diese sind ansich nie doppelt
problem ist.

id, name
1, firma x
2, firma x gmbh
3, firma x gesmbh
...usw

gleiche firma unterschiedliche ID.

geht's trotzdem?
Titel: Re: redundantsen entfernen
Beitrag von: DF6GL am Juli 25, 2011, 15:15:47
Hallo,


ich befürchte, dass Du bei dieser chaotischen Datenhaltung keinen Algorithmus finden wirst, um die Datensätze , die zu einer bestimtmen Firma gehören, per Prozedur einwandfrei zu bestimmen.


Allein wenn die beiden ersten "Wörter" im Namen ("firma" und "x") eine Firma schon eindeutig definieren würden, könnte man sich eine "Automatik" vorstellen.


Im schlechtesten Fall mußt Du Dich halt hinsetzen , die Daten mittels Abfrage nach "Name" ( btw: sehr unvorteilhafter Name) sortieren und zu Fuß die Daten pflegen.

(das fiele dann unter "Lehrgeld bezahlen")  ;D



Vielleicht hilft ja auch ein komm. Tool.   Goggel mal nach "FuzzyDupes"
Titel: Re: redundantsen entfernen
Beitrag von: ebs17 am Juli 25, 2011, 17:19:27
Wenn Deine Inhalte in einem Feld liegen, sind das für die DB keine Duplikate. Da hilft nicht mal ein eindeutiger Schlüssel.

Ausweg: Lagere die Firmen in eine eigene Tabelle aus, wo sie jeweils nur einmal vorkommen. In Deiner vorhandenen Tabelle wird dann nur der Fremdschlüssel für die Firma gespeichert. Dafür bietest Du bei der Eingabe eine Auswahl der vorhandenen Firmen an, so dass es keine Dopplungen (auch nicht durch Schreibfehler) geben kann. Neue Firmen würden nur dann angelegt, wenn es keinen Eintrag in dieser Liste gibt, vgl. FAQ4.13

Behelf: Lege in Deiner Tabelle ein zusätzliches Longfeld für den Fremdschlüssel an, zusätzlich ein Ja/Nein-Feld zur Auswahl. Nachdem Du nach Firmen sortiert hast, fügst Du den Schlüssel am einfachsten per Hand ein. Die Datensätze mit den zu übernehmenden Firmenbezeichnungen markierst Du im Häkchenfeld.
Mit dieser Auswahl kannst Du die neue Firmentabelle per Abfrage füllen. Danach können Häkchenfeld und das Feld der Firmennamen in der ursprünglichen Tabelle gelöscht werden.

Der Rest der DB wäre dann an das geänderte Datenmodell anzupassen.

MfGA
ebs
Titel: Re: redundantsen entfernen
Beitrag von: itil07 am August 02, 2011, 09:16:43
hallo,

also habe nun die kontonummer der jeweiligen firmen hinzugefügt bzw. erhalten.
diese sind absolut eindeutig.
sprich:

firma x
firma x GmbH
firma x Ges m b H
firma x Gesellschaft mit ....

haben jetzt alle die selbe Kontonummer.

Wie kann ich aber jetzt die identischen entfernen?

danke schon mal!
Titel: Re: redundantsen entfernen
Beitrag von: ebs17 am August 02, 2011, 11:08:54
ZitatWie kann ich aber jetzt die identischen entfernen?
Alle? Da hilft eine Löschabfrage.

Wenn Du jeweils einen  Datensatz behalten möchtest, müsstest Du definieren, welchen (der vier im Beispiel). Wenn Dir diese definierte Auswahl über alle Firmen gelingt, könnte man über eine Abfrage die jeweils restlichen löschen.
Falls das nicht gelingt, müsstest Du entweder die zu löschenden oder die zu behaltenden Datensätze per individueller Auswahl und Hand markieren und hättest dann ein eindeutiges Merkmal zum Löschen. Dazu liest Du dann evtl. meinen vorigen Beitrag etwas intensiver.

MfGA
ebs