Das ist etwas wenig Info, um Fehler zu korrigieren.
Deine letzter Versuch kann nicht funktionieren, weil die Aufträge und Lieferscheine gemischt anzeigst, wenn ich es richtig sehe. Die Ergebnisse für Aufträge und Lieferscheine müssen getrennt werden.
Wie Uwe schon schrieb, ist das ohne konkrete
DB etwas schwierig. Da Uwe und ich ähnliche Ansätze verfolgt haben, hier kurz die Idee, die dahinter steckt, damit du dich ohne unsere Hilfe weiter rantasten kannst:
- Erstmal alle betroffenen Aufträge mit Positionen selektieren
- im Subselect die Lieferscheine mit den Positionen passend zu den Auftragspositionen ermitteln
- Das Subselect darf nur die Summe der Mengen liefern
Den ersten Punkt kannst du sicher alleine hinbekommen. Das Problem ist also nur das Subselect.
Du musst mit Tabellenaliasen arbeiten, damit du die Bedingungen im Subselect sauber mit dem äußeren Select verknüpfen kannst.
Als ersten Ansatz kannst zu einem Ergebnis des Haupt-Selects erstmal eine weiteres Select erstellen, dass dann die richtigen Ergebnisse aus den Lieferscheinen liefert. Daran solltest du erkennen, welche Verknüpfungen im Subselect gesetzt werden müssen. Idealerweise testest du das mit einer Auftragsposition, die mehrere Teillieferungen hatte.
Hinweis am Rande:
Das Sum des Subselects kann NULL-Werte beinhalten. Keine Ahnung was
Access damit macht, aber es kann dann sein, dass dort immer NULL rauskommt, sobald einer der Teilwerte NULL ist. Normalerweise habe DBs dafür eine Funktion, die ich aber für
Access nicht kenne. Bei meiner
DB muss ich Coalesce verwenden