Hallo liebe Wissende,
ich möchte von unserer Betriebstankstelle (1 Säule) eine Auswertung erstellen.
Tabelle 1 Befüllung enthält Datum, Menge, Preis von Hand gepflegt
Tabelle 2 Entnahme wird von der Anlage per Import gefüllt. Im wesentlichen Datum, Menge, wer war es.
Nun möchte ich von Befüllung an die Entnahmen bis zur nächsten Befüllung usw. in einer Abfrage bzw. Report ausgeben.
Ich finde nur den Ansatz nicht, wie das geht.
Vielleicht kann jemand von euch das Brett vom Kopf wegmachen.
Danke und Gruß
EckhardWREHDM
Das ist in der Tat etwas knifflig, weil dich der grafische Abfragedesigner bei dieser Aufgaben nicht unterstützen kann.
Erstmal logisch formuliert: Du willst alle Befüllungen und dazu die Entnahmen, die nach dem Befüllungszeitpunkt liegen, aber nur dann wenn sie nicht auch nach dem Datum einer weiteren Befüllung liegen.
In SQL ausgedrückt, könnte das etwa so aussehen:
SELECT b.*, e.*
FROM tblBefuellung b
LEFT JOIN tblEntnahmen e
ON b.Datum <= e.Datum
WHERE NOT EXISTS (SELECT 'x'
FROM tblBefuellung b2
WHERE b2.Datum <= e.Datum
AND b2.Datum > b.Datum);
Befüllen und Entnahme ist der identische Vorgang mit gleichen Merkmalen, wenn man vom Vorzeichen der Menge absieht. Daher würde man das in einer Tabelle zusammenfassen und könnte da auch mögliche weitere Säulen integrieren.
Abfragen würde man erst auf durchdachte Tabellendefinitionen (Datenmodellierung) aufsetzen.
Hallo Eberhard,
da stimme ich Dir zu. Aber wie kriege ich das zusammengefasst. Die eine Tabelle wird manuell erstellt und die andere kommt direkt als csv-Export von der Säule. Also ist gerade die Tabellendefinition mein Problem.
Gruß Eckhard
Hallo,
nach dem Import per Anfügeabfrage an die 1. Tabelle anfügen. In der Abfrage die Menge mit -1 multiplizieren, damit gleich das negative Vorzeichen entsteht bzw. die Menge negativ wird.
hmmmm....
das ist mir eine viel zu einfache Antwort. :-* ;)
Oh Mann :o - vielen Dank - da hätte ich auch selber draufkommen können.
Brett is wech - Danke und gute 2018
noch eine kurze Rückmeldung
es klappt :D :)