Office: (Office 2010) Schwierige Abfrage per Generator

Helfe beim Thema Schwierige Abfrage per Generator in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo allerseits, ich bin schon seit einiger Zeit stiller Leser in eurem Forum und das hat mir schon bei vielen Fragen weitergeholfen. Jetzt habe ich... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von ChiliHead, 2. April 2012.

  1. Schwierige Abfrage per Generator


    Hallo allerseits,
    ich bin schon seit einiger Zeit stiller Leser in eurem Forum und das hat mir schon bei vielen Fragen weitergeholfen. Jetzt habe ich aber ein Problem, dass ich auch durch lesen und recherchieren nicht lösen kann, daher hab ich mich hier angemeldet.

    Also, ich versuche seit 2 Tagen eine Abfrage in Access 2010 zu basteln und kriegs einfach nicht hin. Die beteiligten Tabellen und Beziehungen könnt ihr in dem Screenshot sehen. Ist einfacher als das alles hier zu erklären.

    Tabelle Tasks: Speichert Daten zu ausgeführten Arbeiten (Datum, Bezeichnung, Ort, etc.). Für jede jede ausgeführte Arbeit wird ein Datensatz gespeichert (i.d.R 1x täglich).
    Tabelle TasksPersonal: Für jeden Arbeiter, der an einenm Task gearbeitet hat wird ein Datensatz mit der Anzahl der Arbeitsstunden gespeichert.
    Tabelle Personal: Arbeiter Stammdaten. Zwischen den Tabellen Tasks und Personal besteht eine m:n Beziehung mit TasksPersonal als Mittlertabelle.
    Tabelle PersonalWages: Stundenlohn der Arbeiter. Jedesmal wenn sich der Lohn eines Arbeiters ändert, wird ein Datensatz mit dem Datum ab wann der neue Lohn gilt (PayableFrom) und dem Lohn in € (Wage) gespeichert.
    Tabelle Fields: Orte, wo Arbeiten ausgeführt werden.

    Ziel ist eine Übersicht gruppiert nach Jahr und Feld, die mir anzeigt wie viel Stunden ein Arbeiter in einem Jahr auf einem Feld gearbeitet hat und wie viel er dabei verdient hat. Also in etwa so(eine Zeile pro Arbeiter, Feld und Jahr):

    Jahr………….Feld…………….Arbeiter……………..Gesamt Std.…………Gesamtlohn
    2010…………Feld_1…………Arbeiter_1………….….…100…………..…….…..1000
    2010…………Feld_1…………Arbeiter_2………….………50…………….…….….500
    2010…………Feld_2…………Arbeiter_1………….………30…………….…….….300
    2010…………Feld_2…………Arbeiter_2………….………40…………….….…….400
    2011…………Feld_1…………Arbeiter_1………….………60…………….….…….600
    2011…………Feld_1…………Arbeiter_2………….………50…………….….…….500
    2011…………Feld_2…………Arbeiter_1………….………20…………….………..200
    2011…………Feld_2…………Arbeiter_2………….………40………………………400

    Mein Problem liegt in der Ermittlung des richtigen Stundenlohns für das jeweilige TaskDate dar. Was auch immer ich anstelle, es will nicht klappen. Entweder krieg ich alle Datensätze doppelt und dreifach, oder die Abfrage produziert Fehlermeldungen.
    Ich hoffe sehr ihr könnt mir hierbei weiterhelfen. Vielen Dank

    ChiliHead

    :)
     
    ChiliHead, 2. April 2012
    #1
  2. Moin,
    am besten poste mal die SQL-Syntax einer deiner Abfrageversuche, wo du alles doppelt und dreifach kriegst. Damit wird sich vermutlich schon eine Lösung finden lassen.
    maike
     
    maikek, 4. April 2012
    #2
  3. Also hier mal der SQL-Code von einer solchen Abfrage und auch gleich die Screenshots wie die Abfrage im Generator aussieht und das Ergebnis, dass sie ausspuckt.
    Ich hoffe, ich hab den Code einigermaßen leserlich dargestellt, denn im Access SQL-Editor ist der ja vollkommen unleserlich.

    Code:
    Anstatt für jeden Arbeiter für jedes Jahr den dazu passenden Lohn aus der Tabelle PersonalWages zu suchen, wird jeder Task mit jedem Lohn ausgegeben. Also z.B Arbeiter Antonio hat seit 2010 4 Lohnerhöhungen gekriegt, folglich erscheint er immer 4x in den Ergebisssen. Die anderen Arbeiter haben 3 Lohnerhöhungen gehabt und tauchen alle 3x auf.
    Uff, ich hoffe ich habs einigermaßen verständlich beschrieben.

    ChiliHead

    Nachtrag: Um den richtigen Lohn für den jeweiligen Task und Arbeiter zu finden, müsste die Abfrage zuerst das Datum der zu diesem Task passenden Lohnänderung ermitteln. Dazu muß sie in der Tabelle PersonalWages für die jeweilige PersonalID das Größte (MAX(PayableFrom)) finden, welches kleiner oder gleich dem TaskDate ist. Und zu diesem gefundenen Datum muß dann der korrespondierene Lohn (Wage) genommen werden.
     
    ChiliHead, 4. April 2012
    #3
  4. Schwierige Abfrage per Generator

    So auf die Schnelle: probier mal, statt INNER JOIN einen LEFT oder RIGHT JOIN zwischen den Tabellen (Rechtsklick auf die Beziehungslinie im Entwurf und entsprechende Variante auswählen).
    maike
     
    maikek, 4. April 2012
    #4
  5. Hab ich schon probiert. Bei LEFT Join erhalte ich genau das selbe Ergebis wie bei INNER JOIN.
    Und bei RIGHT JOIN gibts folgende Fehlermeldung: "Die SQL-Anweisung konnte nicht ausgeführt werden, da sie mehrdeutige äußere Verknüpfungen enthält. Damit eine der Verknüpfungen ausgeführt wird, müssen Sie eine separate Abfrage erstellen, die die erste Verknüpfung ausführt, und dann diese Abfrage in die SQL-Anweisung einschließen."
     
    ChiliHead, 4. April 2012
    #5
  6. Hallo ChiliHead,
    das alles in einer Abfrage zu "erschlagen" dürfte in dem Fall schwer werden, bzw. sehr unübersichtlich werden.
    In deinem Nachtrag in #3 hast du die Vorgehensweise egtl. gut beschrieben.

    Nebenbei müssten noch Summen gebildet werden, nur zu Gruppieren wird nicht ausreichend sein.

    Wenn du ein paar Testdaten in einer Bsp-DB hier hochlädst, kann man dir leichter beim "Basteln" behilflich sein.
     
    Marsu65, 4. April 2012
    #6
  7. Hallo Marsu65

    Du sagst es. Ich habs auch schon soweit hingekriegt, das ich ne zweite Abfrage bastele, die als Input keine Tabellen sondern meine erste Abfrage nimmt. Damit kriege ich immerhin schon mal das richtige Datum (PayableFrom) geliefert.
    Hier komme ich jetzt aber auch nicht weiter, denn ich kriegs nicht gebacken, dann von diesem Datum den richtigen Lohn rauszupicken. (siehe Screenshots)

    Das mit der Beispiel DB werd ich machen. Kann nur evtl. bis morgen dauern. Vielen Dank für das Angebot.
     
    ChiliHead, 4. April 2012
    #7
  8. Schwierige Abfrage per Generator

    Den gültigen Lohn zu einem Tagesdatum (Stunden) kannst du in einer (Unter-)Abfrage bestimmen.
    Prinzip:
    Code:
     
    Marsu65, 4. April 2012
    #8
  9. Beispieldaten kommen morgen. Heute krieg ichs nicht mehr hin.
    Und was SQL angeht tue ich mich etwas schwer. Sobald da ein paar verschachtelte Joins drin sind blicke ich schon nicht mehr durch. Dazu kommt der SQL-Editor von Access, den ich eigentlich nur als grauenhaft bezeichnen kann (is ja auch eigentlich kein Editor sondern nur ne SQL-Ansicht, aber ne grauenhafte).
     
    ChiliHead, 4. April 2012
    #9
  10. So, ich hab jetzt mal ne Beispiel Datenbank hier angehängt. Ich hoffe, ihr könnt damit was anfangen.
    Ich bedanke mich an dieser Stelle schon mal ganz herzlich für euere Hilfe.

    ChiliHead
     
    ChiliHead, 5. April 2012
    #10
  11. Sorry, ich kann/darf/soll keine rar-Dateien öffnen.
    Vlt. kannst du das noch mal zippen.
    Oder jemand anderes schaut drüber.

    [Edit] Als mdb (
     
    Marsu65, 5. April 2012
    #11
  12. Leider kein 2010 *wink.gif* .
    maike
     
    maikek, 5. April 2012
    #12
  13. Schwierige Abfrage per Generator

    Sorry, ich kann die gezippte Datei hier nicht hochladen. Ich kriege die Meldung: "Die Datei, die Sie anhängen möchten, ist zu groß. Die maximale Dateigröße für diesen Dateityp beträgt 244,1 KB Bytes. Ihre Datei ist 336,7 KB Bytes groß. *mad.gif*
    Irgendwelche anderen Ideen, wie ich euch diese Datei zugänglich machen kann? Gehts villeicht als Attachment an ne PN?

    Was meinst du damit?
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    ChiliHead, 5. April 2012
    #13
  14. Ich habe kein Access 2010 und auch nicht 2007, das meine ich damit *wink.gif* .
    Hast du vor dem Zippen alles Überflüssige aus deiner DB rausgeschmissen und sie dann Access-komprimiert (Extras, Datenbankdienstprogramme, komprimieren und reparieren)?
    maike
     
    maikek, 5. April 2012
    #14
  15. Die DB enthält nur die für die Abfrage relevanten Tabellen, 2 von mir erzeugte Abfragen und ein paar Testdatensätze. Trotzdem ist die DB stolze 7 Mb groß!! Ich habe Datei/Datenbank Reparieren und komprimieren (in Access 2010) versucht, aber irgendwie passiert da nix.
    Die DB wurde ursprünglich mal in Access 2003 angelegt. Sie wird von mir momentan aber in 2010 bearbeitet. Wenn ich sie geöffnet habe, erscheint ganz oben im Fenster: "BeispielDB: Datenbank(Access 2000-Dateiformat)"
    Also normalerweise solltest du die DB mit jeder Access Version ab 2000 öffnen können.

    ChiliHead

    Ahh halt, wie ich sehe ist die Dateigräße jetzt doch erheblich geschrupft. Nur noch 444 Kb groß. Ich werds gleich noch mal zippen und hochladen.
     
    ChiliHead, 5. April 2012
    #15
Thema:

Schwierige Abfrage per Generator

Die Seite wird geladen...
  1. Schwierige Abfrage per Generator - Similar Threads - Schwierige Abfrage Generator

  2. Schwierige Flächenberechnung mit Excel möglich?

    in Microsoft Excel Hilfe
    Schwierige Flächenberechnung mit Excel möglich?: Servus aus Bayern erstmal, Ich habe eine Frage zum Thema Flächenberechnung bei Excel. Das ganze ist gar nicht so einfach und die frage ob das ganze überhaupt möglich ist stelt sich nach Wochen des...
  3. Funktion 20 Zellen untereinander gleich dann...?

    in Microsoft Excel Hilfe
    Funktion 20 Zellen untereinander gleich dann...?: [ATTACH] Hallo liebes Forum, ich habe ein "außergewöhnliches" Problem, bin zu mindestens in meiner Recherche nie darauf gestoßen. Ich muss eine Zeitreihe über ein ganzes Jahr...
  4. Punkteverteilung nach Rang - mit erhöhter Schwierigkeit

    in Microsoft Excel Hilfe
    Punkteverteilung nach Rang - mit erhöhter Schwierigkeit: SOLVED! Punkteverteilung nach Rang - mit erhöhter Schwierigkeit Hallo zusammen, ich sitze gerade an einer Auswertung und mache bisher alles händisch. Auch nach intensiver Formel-Suche komme ich...
  5. Knifflig!

    in Microsoft Excel Hilfe
    Knifflig!: Hallo liebe Excellianer, ich stehe vor einem sehr kniffligen Problem und hoffe irgendjemand kann mir weiterhelfen! - In Spalte 2 von B-E stehen Jahreszahlen. Diese sind in den vielen Dateien...
  6. Minimum innerhalb einer Tabelle ohne Spalte oder Zeile doppelt zu zählen

    in Microsoft Excel Hilfe
    Minimum innerhalb einer Tabelle ohne Spalte oder Zeile doppelt zu zählen: Guten Morgen, ich habe folgendes Problem. Ich habe eine Tabelle mit 45 Zeilen und Spalten. Aus der Tabelle sollen 45 Werte entnommen werden, sodass deren Gesamtsumme minimal ist. Die Bedingung...
  7. Bräuchte Hilfe für ne Excel Formatierung (sehr schwierig)

    in Microsoft Excel Hilfe
    Bräuchte Hilfe für ne Excel Formatierung (sehr schwierig): ich möchte eine Excel Liste formatieren EDIT: Verlinkung gelöscht vom Administrator das schwierige daran: Ich möchte dass die List so ist, wenn ich z.b. die serientitel alphabetisch...
  8. schwierige SVERWEIS Formel

    in Microsoft Excel Hilfe
    schwierige SVERWEIS Formel: Hallo zusammen, folgende Problem. Ich habe eine Excelliste in Spalte A stehe verschiedene Artikel in einem anderen Tabellenblatt stehen verschiedene Waregruppen. In Spalte B neben den...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden