Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
2 Tabellen nach 3 Spalten vergleichen
Gehe zu Seite 1, 2  Weiter
zurück: Bitte um Hilfe bei Datenmodell weiter: Access 2007 Tabellen zur Laufzeit verknüpfen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
beFRANK
Im Profil kannst Du frei den Rang ändern


Verfasst am:
11. Nov 2009, 21:28
Rufname:

2 Tabellen nach 3 Spalten vergleichen - 2 Tabellen nach 3 Spalten vergleichen

Nach oben
       Version: Office 2k (2000)

Schönen guten Abend,

habe ein anscheinend "einfaches" Problem bei dem ich aber nicht weiterkomme bzw. immer falsche Ergebnisse erhalte.

Das Problem:

2 Tabellen darin
3 Datenfelder zum Vergleichen

Benötigtes Ergebnis:

Alle Datensätze aus TAB1, bei denen die 3 Datenfelder in TAB 1 und TAB2 alle gleichzeitig identisch sind.

Bekomme es leider nicht hin, die Tabellen hier einzufügen, vielleicht kann mir hier auch einer weiterhelfen?!

Also wenn

TAB1-Feld1 = TAB2-Feld1 und zugleich
TAB1-Feld2 = TAB2-Feld2 und zugleich
TAB1-Feld3 = TAB2-Feld3

dann diesen Datensatz aus TAB1 anzeigen!
Code:
SELECT TAB1.*
FROM   TAB1
       LEFT JOIN TAB2
       ON  TAB1.Feld1 = TAB2.Feld1
       AND TAB1.Feld2 = TAB2.Feld2
       AND TAB1.Feld3 = TAB2.Feld3
Hiermit funktioniert es nicht Sad - Bekomme irgendwie zu viele Ergebnisse und auch falsche.

Hoffe mit kann jemand helfen.

Besten Danke
MissPh!
Office-VBA-Programmiererin


Verfasst am:
11. Nov 2009, 21:53
Rufname:
Wohnort: NRW


AW: 2 Tabellen nach 3 Spalten vergleichen - AW: 2 Tabellen nach 3 Spalten vergleichen

Nach oben
       Version: Office 2k (2000)

Hallo,

Left Join ist hier die falsche Wahl, du willst doch nur die Übereinstimmungen finden, nimm also INNER JOIN.

_________________
Gruß MissPh!
beFRANK
Im Profil kannst Du frei den Rang ändern


Verfasst am:
11. Nov 2009, 22:21
Rufname:

AW: 2 Tabellen nach 3 Spalten vergleichen - AW: 2 Tabellen nach 3 Spalten vergleichen

Nach oben
       Version: Office 2k (2000)

Danke für die schnelle Anwort,

aber leider funktioniert INNER JOIN auch nicht, hab auch schon RIGHT JOIN ausprobiert. Irgendwie stimmen immer die Ergebnisse nicht Sad
Code:
SELECT TAB1.*
FROM   TAB1
       INNER JOIN TAB2
       ON  TAB1.Feld1 = TAB2.Feld1
       AND TAB1.Feld2 = TAB2.Feld2
       AND TAB1.Feld3 = TAB2.Feld3;
Irgendwas muß da noch falsch sein oder fehlen ... vielleicht ein WHERE?!

Mit dem Code bekomme ich einen übereinstimmenden Datensatz 4 mal ausgegeben und 2 weitere, die eigentlich erscheinen müßten, werden nicht angezeigt.

... manche zu vergleichende Datenfelder sind auch leer - hat das vielleicht einen Einfluß auf das Ganze?! Rolling Eyes
MissPh!
Office-VBA-Programmiererin


Verfasst am:
11. Nov 2009, 22:42
Rufname:
Wohnort: NRW

AW: 2 Tabellen nach 3 Spalten vergleichen - AW: 2 Tabellen nach 3 Spalten vergleichen

Nach oben
       Version: Office 2k (2000)

Sicher, warum legst du nicht gleich die Karten auf den Tisch?!

Stelle doch bitte deine Frage so, dass sie dein Problem nachvollziehbar schildert.

Möglicherweise könnte dies die Lösung sein:
Code:
SELECT TAB1.*
FROM   TAB1, TAB2
WHERE  (TAB1.Feld1 = TAB2.Feld1
OR      TAB2.Feld1 Is Null)
AND    (TAB1.Feld2 = TAB2.Feld2
OR      TAB2.Feld2 Is Null)
AND    (TAB1.Feld3 = TAB2.Feld3
OR      TAB2.Feld3 Is Null);
oder zumindest ein Ansatz für weitere Versuche in dieser Richtung
_________________
Gruß MissPh!
beFRANK
Im Profil kannst Du frei den Rang ändern


Verfasst am:
11. Nov 2009, 23:33
Rufname:


AW: 2 Tabellen nach 3 Spalten vergleichen - AW: 2 Tabellen nach 3 Spalten vergleichen

Nach oben
       Version: Office 2k (2000)

... sorry, aber ich hab doch versucht, die Karten auf den Tisch zu legen und bei den "leeren Zellen" haben wir uns vielleicht falsch verstanden.

Wenn die Zellen leer sind, müssen sie in TAB1 und TAB2 leer sein, damit der Datensatz die gewünschten Bedingungen erfüllt, nicht nur in einer.
Würde mir jemand verraten, wie ich eine formatierte ACCESS-Tabelle hier hineinbekomme, dann wäre es leichter zu erklären Sad
Vielleicht gehts so ... (siehe Anhang)

Hoffe man kann das Bild erkennen und jetzt ist leichter zu verstehen, was ich meine.
Die "Ergebnis"-Tabelle ist per Hand gemacht.
Feld1, Feld2, Feld3 müssen in beiden Tabellen gleich sein, ob jetzt leer oder nicht leer, wenn dann gleich leer ;) - dann SELECT den Datensatz aus TAB1.
Im Anschluß kommen in beiden Tabellen noch andere Felder, aber nach denen muß nicht abgeglichen werden.

Sorry nochmals für die Verwirrung, aber ich finde das schwer zu erklären Sad



Tabellen.jpg
 Beschreibung:
 Dateigröße:  138 KB
 Angeschaut:  1163 mal

Tabellen.jpg


MissPh!
Office-VBA-Programmiererin


Verfasst am:
12. Nov 2009, 13:44
Rufname:
Wohnort: NRW

AW: 2 Tabellen nach 3 Spalten vergleichen - AW: 2 Tabellen nach 3 Spalten vergleichen

Nach oben
       Version: Office 2k (2000)

Hallo,

jetzt verstehe ich, du musst die ID mit hinzunehmen. Das funktioniert natürlich nur, wenn die Datensatznummern übereinstimmen,
so dass du Datensatz-1 mit Datensatz-1 und Datensatz-2 mit Datensatz-2 usw. vergleichen kannst.
Dann sollte die Version mit dem Inner Join klappen.
...nicht ganz, aber so:
Code:
SELECT TAB1.*
FROM   TAB1
       INNER JOIN TAB2
       ON  TAB1.id=TAB2.id
       AND Nz(TAB1.Feld1) = Nz(TAB2.Feld1)
       AND Nz(TAB1.Feld2) = Nz(TAB2.Feld2)
       AND Nz(TAB1.Feld3) = Nz(TAB2.Feld3)

_________________
Gruß MissPh!
beFRANK
Im Profil kannst Du frei den Rang ändern


Verfasst am:
12. Nov 2009, 14:38
Rufname:

AW: 2 Tabellen nach 3 Spalten vergleichen - AW: 2 Tabellen nach 3 Spalten vergleichen

Nach oben
       Version: Office 2k (2000)

Vielen lieben Danke, MissPH! Razz

Nur leider ist es nicht so, daß ich die IDs mitnehmen kann, da im "Echtfall" die Datenbanken eine unterschiedliche Anzahl an Datensätzen, eigentlich keine ID (erst beim Import in ACCESS zugefügt) und auch keinen anderen eindeutigen Wert haben, der in beiden gleich ist. Eben nur, wenn ein Datensatz in beiden Datenbanken vorkommt, was heißt, diese 3 Felder gleich sind, soll er aus der ersten Datenbank übernommen werden.

Ich seh schon, daß das eine größere Sache zu sein scheint und weiß auch nicht wirklich, ob das dann so klappt?!

Mal eine andere Frage, im Code hast du scheinbar die Feldinhalte einer Variablen zugewiesen und dann verglichen, vermute ich da richtig?!
Nz(TAB1.Feld1) = Nz(TAB2.Feld1)
Ist das so erforderlich oder würde das ganze auch direkt funktionieren?!
TAB1.Feld1 = TAB2.Feld1

Wenn das zu kompliziert wird, brauchst du dir nicht mehr die große Mühe machen,
herzlichen Dank schon mal für deine Bemühungen.

Vielleicht versuche ich´s mal anders - Mir ist da gerade was eingefallen ...
  • Füge in den beiden Tabellen jeweils ein Feld (x-Feld) hinzu
  • Markiere es mit "x" in TAB1
  • Füge die beiden zusammen
  • Duplettenabgleich über Assi
  • Lasse mir eine Tabelle erstellen (DUP)
  • SELECT * FROM DUP WHERE x-Feld="x"
Könnte auch funktonieren, oder!? - Ein anderer Weg ist wohl zu steinig?! Rolling Eyes
MissPh!
Office-VBA-Programmiererin


Verfasst am:
12. Nov 2009, 14:47
Rufname:
Wohnort: NRW

AW: 2 Tabellen nach 3 Spalten vergleichen - AW: 2 Tabellen nach 3 Spalten vergleichen

Nach oben
       Version: Office 2k (2000)

Die NZ-Funktion eliminiert NULL-Values, sonst klappt der Vergleich bei leeren Feldern nicht.

Schade, dein Beispiel hat suggeriert, dass immer ein Datensatz mit dem korrespondieren in der anderen Tabelle
verglichen werden soll. Wenn das nicht zutrifft, ist auch dein Beispiel falsch. Denn dann ist 1=9, 2=2,4,7,8,10, 3=5, ... usw.
Da musst du wohl noch einmal drüber nachdenken...

_________________
Gruß MissPh!
tk6
SAP-Consultant


Verfasst am:
12. Nov 2009, 14:52
Rufname:

AW: 2 Tabellen nach 3 Spalten vergleichen - AW: 2 Tabellen nach 3 Spalten vergleichen

Nach oben
       Version: Office 2k (2000)

Handelt es sich bei den Feldern tatsächlich um Felder vom Typ Boolean (Ankreuzfeld, Checkbox, Ja/Nein) oder hast du das jetzt nur so für uns dargestellt? Wenn sie tatsächlich Boolean-Werte sind, könnte man die Sache evtl. erheblich vereinfachen.
_________________
Beste Grüße

tk
MissPh!
Office-VBA-Programmiererin


Verfasst am:
12. Nov 2009, 14:58
Rufname:
Wohnort: NRW

AW: 2 Tabellen nach 3 Spalten vergleichen - AW: 2 Tabellen nach 3 Spalten vergleichen

Nach oben
       Version: Office 2k (2000)

Seit wann steht ein "X" in einer Tabellenspalte für Boolean? Confused
_________________
Gruß MissPh!
tk6
SAP-Consultant


Verfasst am:
12. Nov 2009, 15:46
Rufname:

AW: 2 Tabellen nach 3 Spalten vergleichen - AW: 2 Tabellen nach 3 Spalten vergleichen

Nach oben
       Version: Office 2k (2000)

MissPh! hat recht. Deshalb muß ich meine Frage umformulieren: Gibt es in den Feldern nur die Werte X oder garnichts, sprich: Sind dort nur 2 Werte möglich?
_________________
Beste Grüße

tk
beFRANK
Im Profil kannst Du frei den Rang ändern


Verfasst am:
12. Nov 2009, 17:49
Rufname:

AW: 2 Tabellen nach 3 Spalten vergleichen - AW: 2 Tabellen nach 3 Spalten vergleichen

Nach oben
       Version: Office 2k (2000)

Hallo zusammen,

ich gebs zu, auch meine Beispieltabellen (Bild) sind ungünstig und erklären nicht genau, was die Abfrage machen soll *seufz* ...

Neuer Versuch:
Datensatz aus TAB1 VERGLEICHEN
WENN in TAB2 ein Datensatz vorhanden, bei dem die Felder Feld1, Feld2, Feld3 mit denen aus TAB1 übereinstimmen
DANN Datensatz aus TAB1 übernehmen SONST nicht

und das für jeden Datensatz aus TAB1

Zu dem "x" in den Tabellen - was zugegeben sehr ungünstig zur Veranschaulichung gewählt war Rolling Eyes - "x" steht für einen beliebigen Inhalte (Typ Text) der Felder, der nicht gleich ist - nur manchmal, nur dann, wenn der Datensatz auch ausgegeben werden soll. Hätte unterschiedliche Platzhalter verwenden müssen - nochmals sorry.

Hab echt schon ein schlechtes Gewissen, daß ich nicht richtig rüberbringen kann, was die Abfrage eigentlich machen soll.

@MissPH!: Danke für die Erklärung der NZ-Funktion, sehr gut zu wissen, werde ich mir merken Razz
kyron9000
Practitioner :)


Verfasst am:
12. Nov 2009, 18:15
Rufname:
Wohnort: Wien

AW: 2 Tabellen nach 3 Spalten vergleichen - AW: 2 Tabellen nach 3 Spalten vergleichen

Nach oben
       Version: Office 2k (2000)

hallo,

hätte folgenden vorschlag:
ABF1
Code:
SELECT ID, IIf([Feld1]=Is Null,"",[Feld1]) AS A,
       IIf([Feld2] Is Null,"",[Feld2]) AS B,
       IIf([Feld3] Is Null,"",[Feld3]) AS C
FROM   TAB1;
ABF2
Code:
SELECT ID, IIf([Feld1] Is Null,"",[Feld1]) AS A,
       IIf([Feld2] Is Null,"",[Feld2]) AS B,
       IIf([Feld3] Is Null,"",[Feld3]) AS C
FROM   TAB2;
ABF3 = ERGEBNIS
Code:
SELECT A1.ID, A1.A, A1.B, A1.C
FROM   ABF1 AS A1
       INNER JOIN ABF2 AS A2
       ON  (A1.C = ABF2.C)
       AND (A1.B = A2.B)
       AND (A1.A = A2.A)
       AND (A1.ID = A2.ID);
bei mir funkts (darauf folgend ID muss gleich sein und die tabellen heißen TAB1 TAB2)
nix mit nix vergleichen ist das problem gewesen, denke ich Smile.

_________________
Gruß Alfred...

Es ist nicht immer alles so einfach wie es sich im Moment darstellt...
MissPh!
Office-VBA-Programmiererin


Verfasst am:
12. Nov 2009, 18:30
Rufname:
Wohnort: NRW

AW: 2 Tabellen nach 3 Spalten vergleichen - AW: 2 Tabellen nach 3 Spalten vergleichen

Nach oben
       Version: Office 2k (2000)

So weit waren wir schon, aber das Ergebnis ist leider nicht richtig bzw. (im Gegensatz zur hier vorgestellten Lösung) doch nicht das gesuchte. ;)

Ich habe jetzt mal folgenden Vorschlag:
Abfrage abf1:
Code:
SELECT DISTINCT T1.feld1,T1.feld2,T1.feld3
FROM   TAB1 AS T1
       INNER JOIN TAB2 AS T2
       ON  (Nz(T1.Feld3) = Nz(T2.Feld3))
       AND (Nz(T1.Feld2) = Nz(T2.Feld2))
       AND (Nz(T1.Feld1) = Nz(T2.Feld1))
Abfrage abf2:
Code:
SELECT T.*
FROM   tab1 AS T
       INNER JOIN abf1 AS A
       ON  Nz(T1.Feld1) = Nz(a.Feld1)
       AND Nz(T1.Feld2) = Nz(a.Feld2)
       AND Nz(T1.Feld3) = Nz(a.Feld3)
Dabei kommen (korrekterweise) alle 10 Testdatensätze heraus.
Änderst du dann mal einen Eintrag, zb nimmst du bei ID=4 in tab1 das dritte X raus...

_________________
Gruß MissPh!
kyron9000
Practitioner :)


Verfasst am:
12. Nov 2009, 18:48
Rufname:
Wohnort: Wien


AW: 2 Tabellen nach 3 Spalten vergleichen - AW: 2 Tabellen nach 3 Spalten vergleichen

Nach oben
       Version: Office 2k (2000)

kyron9000 am 12. Nov 2009 um 17:34 hat folgendes geschrieben:
ok, mach ich mal, hab das mit meinen daten probiert und hat funktioniert ...bis später Smile

sorry, aber das ergebnis ist bei mir exakt dem vorgegebenen.

habe die daten genauso eingegeben wie sie am bildschirm vorgegeben sind.
und demzufolge ist alles ok für mich und ich habe keine weiteren vorschläge zu machen.
nz sollte nix ausschließen, weiß ich ;)

wünsche noch einen schönen abend

PS: meine ID Nr sieht anders aus... natürlich, da ich es schon das 2.x getestet habe sorry
und falls es zweifel gibt, ich stelle die db auch gerne ein aber, denke ist nicht notwendig.

_________________
Gruß Alfred...

Es ist nicht immer alles so einfach wie es sich im Moment darstellt...
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Gehe zu Seite 1, 2  Weiter
Diese Seite Freunden empfehlen

Seite 1 von 2
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: aus zwei Tabellen eine machen 1 mirimaus 2136 30. Jun 2004, 16:30
stpimi aus zwei Tabellen eine machen
Keine neuen Beiträge Access Tabellen & Abfragen: 2 gleiche Tabellen in 2 verschiedenen DB verknüpfen 2 mondi 1015 23. Jun 2004, 10:10
mondi 2 gleiche Tabellen in 2 verschiedenen DB verknüpfen
Keine neuen Beiträge Access Tabellen & Abfragen: Tabelle mit Beziehung zu anderen Tabellen updaten - wie ? 4 miredoju 2684 15. Jun 2004, 10:24
miredoju Tabelle mit Beziehung zu anderen Tabellen updaten - wie ?
Keine neuen Beiträge Access Tabellen & Abfragen: 2 tabellen verknüpfen und daten übergeben 5 mihca 2004 05. Jun 2004, 13:22
mihca 2 tabellen verknüpfen und daten übergeben
Keine neuen Beiträge Access Tabellen & Abfragen: Löschabfrage -> findet Tabellen nicht (GELÖST) 14 DAU 5674 26. Mai 2004, 13:18
DAU Löschabfrage -> findet Tabellen nicht (GELÖST)
Keine neuen Beiträge Access Tabellen & Abfragen: Frontend und Backend: kann nicht auf die Tabellen zugreifen 1 mhw 803 25. Mai 2004, 12:25
Robsl Frontend und Backend: kann nicht auf die Tabellen zugreifen
Keine neuen Beiträge Access Tabellen & Abfragen: Zwei Tabellen zusammenfügen und Nullwerte überschreiben 1 m.hataj 1304 13. Mai 2004, 18:10
faßnacht(IT); Zwei Tabellen zusammenfügen und Nullwerte überschreiben
Keine neuen Beiträge Access Tabellen & Abfragen: kriterium - datensatz nur in einer von zwei tabellen 3 budking82 1000 11. Mai 2004, 12:59
budking82 kriterium - datensatz nur in einer von zwei tabellen
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage erstelen, die zwei tabellen vergleicht 2 pucky 802 27. Apr 2004, 10:53
ProLogistik Abfrage erstelen, die zwei tabellen vergleicht
Keine neuen Beiträge Access Tabellen & Abfragen: Abgleich von 2 tabellen in access 2003 4 Fierce 1719 16. Apr 2004, 08:27
el_gomero Abgleich von 2 tabellen in access 2003
Keine neuen Beiträge Access Tabellen & Abfragen: neue Tabellen erstellen aus vorhandener Tabelle 6 moni 2010 29. März 2004, 15:39
moni neue Tabellen erstellen aus vorhandener Tabelle
Keine neuen Beiträge Access Tabellen & Abfragen: datensatz aus mehreren Tabellen im formular anzeigen 1 SixPack 1197 29. März 2004, 10:53
Willi Wipp datensatz aus mehreren Tabellen im formular anzeigen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: HTML Editor Forum