PDA

Vollständige Version anzeigen : Doppelte Einträge in Abfrage


Lowfyr
09.06.2012, 16:38
Sehr geehrte Forumsteilnehmer

Ich habe folgendes Anliegen. Für Preisvergleiche habe ich mir eine Accessabfrage gebastelt. Diese Hauptabfrage besteht momentan aus drei Unterabfragen. Wenn ich dieses Problem hoffentlich mit Eurer Hilfe lösen kann, dann muss ich in diese Abfrage dann noch weitere Unterabfragen (insgesamt 6Stück) integrieren.

Zum Problem:

Die Unterabfrage 1 ist die führende Abfrage und wird über insgesamt 6 Artikelmerkmale –welche in allen Abfragen identisch sind- mit den anderen zwei Unterabfragen verknüpft. So, dass ein eindeutiger Schlüssel entsteht. Das Viereck soll einen Pfeil nach rechts für die Verknüpfungseigenschaft darstellen. Hab den Pfeil im Forumseditor nicht gefunden. Bin noch blutiger Anfänger hier im Forum.



Unterabfrage 1 (Master) Unterabfrage 2

Artikelmerkmal 1  Artikelmerkmal 1
Artikelmerkmal 2  Artikelmerkmal 2
Artikelmerkmal 3  Artikelmerkmal 3
Artikelmerkmal 4  Artikelmerkmal 4
Artikelmerkmal 5  Artikelmerkmal 5
Artikelmerkmal 6  Artikelmerkmal 6

Unterabfrage 3
 Artikelmerkmal 1
 Artikelmerkmal 2
 Artikelmerkmal 3
 Artikelmerkmal 4
 Artikelmerkmal 5
 Artikelmerkmal 6

Bei der Verknüpfungseigenschaft habe ich Nr. 2, (Beinhaltet alle Datensätze aus Unterabfrage 1 (Master) und nur die Datensätze aus Unterabfrage 2/3 bei denen die Inhalte der verknüpften Felder beider Tabellen gleich sind) genommen.

Nun liefert mir Access das folgende Resultat, wenn jeder Mitbewerber einen Vergleichsartikel hat:

Mein Produkt (Artikel-Nr.) aus Masterabfrage Unterabfrage 1
Produkt Mitbewerber 1 (Artikel-Nr.) aus Unterabfrage 2
Produkt Mitbewerber 2 (Artikel-Nr.) aus Unterabfrage 3
11111 222222 333333

Dieses Resultat passt soweit.

Es kann aber vorkommen, dass ein Mitbewerber vielleicht mehr als ein vergleichbares Produkt hat. Im folgenden Beispiel hat nun Mitbewerber 2 insgesamt 4 vergleichbare Produkte. Dann zeigt mir die Abfrage das folgende Resultat:

Mein Produkt (Artikel-Nr.) aus Masterabfrage Unterabfrage 1
Produkt Mitbewerber 1 (Artikel-Nr.) aus Unterabfrage 2
Produkt Mitbewerber 2 (Artikel-Nr.) aus Unterabfrage 3
11111 222222 333333
11111 222222 444444
11111 222222 555555
11111 222222 666666

Die Datensätze aus der Masterabfrage (Unterabfrage 1) und der Unterabfrage 2 werden so oft wiederholt, wie Artikel in der Unterabfrage 3 vorkommen. Ich möchte nun aber, dass das Resultat bzgl. einfacherer Vergleichbarkeit wie folgt aussieht:

Mein Produkt (Artikel-Nr.) aus Masterabfrage Unterabfrage 1
Produkt Mitbewerber 1 (Artikel-Nr.) aus Unterabfrage 2
Produkt Mitbewerber 2 (Artikel-Nr.) aus Unterabfrage 3
11111 222222 333333
444444
555555
666666

Dort wo nur ein Artikel vorkommt, soll auch nur ein Artikel erscheinen. Dort wo mehrere vorkommen, sollen alle erscheinen. Habe schon versucht, in der Gesamtabfrage, welche alle 3 Unterabfragen beinhaltet, in den Eigenschaften den Punkt „Keine Duplikate“ auf Ja zu stellen. Dies hat leider nichts gebracht.

Kann mir jemand sagen, wie ich das anstellen muss, dass ich zum gewünschten Ergebnis komme.

Bitte entschuldigt die schlechte Darstellung. Ich hoffe, dass ich mein Problem trotzdem einigermassen verständlich rüberbringen konnte.

Für Eure Hilfe danke ich Euch bestens.

Lieber Gruss

Lowfyr

EmiliaM
09.06.2012, 17:42
Hallo Lowfyr,

poste bitte die genaue SQL der gesamten Abfrage (SQL-Ansicht, kopieren, hier einfügen). Das sagt mehr als alle Beschreibungen.

maikek
09.06.2012, 17:43
Moin, und willkommen im Forum.
Ein wenig verwirrend finde ich die Beschreibung schon ;) .
Weshalb gibt es für jeden Mitbewerber eine eigene "Unterabfrage" :confused: ?

, wenn ich's richtig verstanden habe, dann ist dies mein Vorschlag.
Frage alle Mitbewerbsartikel in einem Feld ab, also keine 6 Unterabfragen. Ergebnis in deiner Darstellung:
11111 222222
11111 333333
11111 444444
11111 555555
11111 666666

Das Ergebnis dieser Abfrage verwendest du dann für eine Kreuztabellenabfrage, um eine Übersicht in Zeilen zu bekommen, z.B. so etwas:
Mitbewerber 1 222222
Mitbewerber 2 333333 444444 555555 666666

Im Zweifelsfall poste doch auch einfach die SQL-Syntax deiner Abfrage, die findest du im Abfrageentwurf im Menü Ansicht.
maike

Lowfyr
10.06.2012, 09:02
Hallo zusammen

Vielen Dank für Eure Hilfe. Ich werde den Tip mit der Kreuztabelle weiterverfolgen.

Liebe Grüsse

Lowfyr