Doppelte Werte in Abfrage

starbug

Erfahrenes Mitglied
Hallo,

ich habe noch ein Problem: Ich habe ein Produkttabelle mit Artikelnummern. Diese hat mit einer Info Tabell eine 1:n Beziehung.
Außerdem hat die Produktablle eine weitere 1:n Beziehung mit einer Umsatztabelle. Als Primärschlüssel dient in beiden Fällen die Artikelnummer. Wichtig vielleicht noch, es gibt ca. 30000 Datensätze.

Problem: Führe ich eine Abfrage mit 2 Tabellen aus, also z.B. Produkt-und Infotabelle, dann bekomme ich auch 30000 Datensätze. Nehme ich jetzt aber noch die Umsatztabelle dazu dann bekomme ich 65000 Datensätze.

Wie kann ich das verhindern?
 
1:n, das multipliziert sich hoch.
Wenn du pro Artikel (Produkt) nur eine Zeile haben willst, dann musst du die Details dazu zuerst auf die gleiche Stufe Zusammenaggregieren wie die Produktetabelle hat. Also auf eine Artikel-id gruppieren oder nur den aktuellestn Umsatz auswählen etc.
Ansonsten gibt es immer eine vervielfachung der Einträge.

Deine Infotabelle wird wahrscheinlich als 1:1 mit der Produktetabelle verknüpft sein. Darum gibts bei dieser Verknüpfung noch keine Vervielfälltigung der Daten.
 
Also die Produkttabelle hat auch eine 1:n Beziehung mit der Infotabelle. Ich versuch dir mal zu zeigen wie das bei mir aussieht.

Also eine normale Abfrage von Produkt und Info sieht dann so aus:

Produkt Artikel Info

Endprodukt 1 Artikel 1 Info 1
Endprodukt 1 Artiekl 2 Info 2
Endprodukt 1 Artikel 3 Info 3
Endprodukt 1 Artikel 4 Info 4

So weit so gut.

So sollte es aussehen wenn der Umsatz aus der Umsatztabelle mit abgefragt wird:


Produkt Artikel Info Umsatz

Endprodukt 1 Artikel 1 Info 1 100
Endprodukt 1 Artiekl 2 Info 2 100
Endprodukt 1 Artikel 3 Info 3 100
Endprodukt 1 Artikel 4 Info 4 100

Bei mir siehts dann aber so aus:

Produkt Artikel Info Umsatz

Endprodukt 1 Artikel 1 Info 1 50
Endprodukt 1 Artikel 1 Info 1 100
Endprodukt 1 Artikel 2 Info 2 50
Endprodukt 1 Artiekl 2 Info 2 100
Endprodukt 1 Artikel 3 Info 3 50
Endprodukt 1 Artikel 3 Info 3 100
Endprodukt 1 Artiker 4 Info 4 50
Endprodukt 1 Artikel 4 Info 4 100

Das liegt natürlich daran, dass ich dem Endprodukt zwei Umsätze zugeordnet habe, was aber notwendig ist. Wie kann ich das lösen das ich das so angezeigt bekomme wie es sein sollte?
 
Woher soll Access wissen, welchen Umsatz es nehmen soll?
Code:
Endprodukt 1 Artikel 1 Info 1 50
Endprodukt 1 Artikel 1 Info 1 100

Du musst da Access ein wenig unter die Arme greiffen, denn Access hat keine Ahnung das du a) nur einen Umsatz willst und b) welchen der Beiden.
 
Ja das hab ch mir gedacht aber wie bekomme ich das hin? Muss ich neue Tabellen erstellen oder sollte ich eine m:n Beziheung herstellen, oder kann man auch was per VBA machen?
 
Also, was sind die Kriterien. Je nachdem musst du es anderst lösen.
Ist es ein Feld auf das gefiltert wird, ist es der Umsatz mit dem höchsten Datum, ist es der Umsatz mit dem grössten Wert, ist es der Umsatz der per Zufallswert ausgewählt wird.......
 
Hmmm,
also meine Idee war es das ich eine große Abfrage über mehrere abellen mache und die Abfrage dann als Inhalt für eine Pivot Chart nehme, aber das ist dann ja wohl hinfällig. Ich könnte aber dann wahrscheinlich auch eine Pivot Chart aus mehreren Tabellen erstellen oder ?
 
Sorry, ich kann dir nicht mehr weiterhelfen weil ich keine Ahnung vom Pivot-Zeugs hab. (wozu das in Access gut sein soll?)

Aber wenn du mit Pivot das Problem beseitigen kannst - gut.

Schlag dir das Konzept von grossen SQL bei MS Access aus dem Kopf. Das wird ein gebastel mit zig Unterabfragen die alle einzeln gespeichert werden müssen, da MS Acceess nicht wirklich für Abfragen gemacht ist und dieses Kapitel dort immer noch in Kinderschuhen steckt - ja, sie haben in Access über die Jahre viel verbessert, nur nicht den Abfrageteil. Der ist noch etwa auf dem Stand von Access 1.1 aus den 1990er.
 

Neue Beiträge

Zurück