tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von Yaslaw
  • 1 Beitrag von Yaslaw
ERLEDIGT
JA
ANTWORTEN
11
ZUGRIFFE
843
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    starbug starbug ist offline Mitglied Gold
    Registriert seit
    Jan 2011
    Beiträge
    191
    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?
     

  2. #2
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    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.
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  3. #3
    starbug starbug ist offline Mitglied Gold
    Registriert seit
    Jan 2011
    Beiträge
    191
    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?
     

  4. #4
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Woher soll Access wissen, welchen Umsatz es nehmen soll?
    Code :
    1
    2
    
    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.
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  5. #5
    starbug starbug ist offline Mitglied Gold
    Registriert seit
    Jan 2011
    Beiträge
    191
    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?
     

  6. #6
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    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.......
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  7. #7
    starbug starbug ist offline Mitglied Gold
    Registriert seit
    Jan 2011
    Beiträge
    191
    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 ?
     

  8. #8
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    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.
    starbug bedankt sich. 
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  9. #9
    starbug starbug ist offline Mitglied Gold
    Registriert seit
    Jan 2011
    Beiträge
    191
    Ok danke trotzdem für die Infos ich werd mal was versuchen.
     

  10. #10
    DiddiGSB DiddiGSB ist offline Mitglied
    Registriert seit
    Nov 2009
    Beiträge
    21
    hi, poste doch mal deine beziehungen.
    ich denke da ist was falsch drin!
     

  11. #11
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Ich denke seine Beziehungen sind schon richtig. Das was er hat ist bei einer 1:n Beziehung völlig normal. Er müsste nur wissen mit welchem Kriterium er den richtigen Umsatz findet.
    starbug bedankt sich. 
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  12. #12
    DiddiGSB DiddiGSB ist offline Mitglied
    Registriert seit
    Nov 2009
    Beiträge
    21
    Zitat Zitat von Yaslaw Beitrag anzeigen
    Ich denke seine Beziehungen sind schon richtig. Das was er hat ist bei einer 1:n Beziehung völlig normal. Er müsste nur wissen mit welchem Kriterium er den richtigen Umsatz findet.

    Das mit den beziehungen habe nschon viele gedacht.
     

Ähnliche Themen

  1. Antworten: 9
    Letzter Beitrag: 29.07.10, 11:04
  2. Doppelte Werte in Array?
    Von Dragonate im Forum PHP
    Antworten: 2
    Letzter Beitrag: 08.02.10, 16:14
  3. Doppelte Werte aus Array finden
    Von kevkev im Forum PHP
    Antworten: 6
    Letzter Beitrag: 29.04.07, 10:26
  4. doppelte werte aus Array loeschen
    Von fabo-erc im Forum C/C++
    Antworten: 10
    Letzter Beitrag: 18.09.06, 16:47
  5. Doppelte Werte nur einmal ausgeben
    Von asmodis! im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 01.06.02, 11:36