Hallo zusammen,
ich hoffe, ihr könnt mir bei folgendem Problem helfen.
Ich habe in ACCESS zwei Tabellen:
Tabelle "Datum" mit dem Feld "Datum"
In dieser Tabelle stehen die Daten (Mehrzahl von Datum), die ausgewertet werden sollen.
Beispiel:
Datum
01.03.2017
02.03.2017
03.03.2017
04.03.2017
05.03.2017
Tabelle "Bestand" mit den Feldern "Bestandsdatum" und "Bestandsmenge"
In dieser Tabelle sind nur Datensätze enthalten, an denen sich die "Bestandsmenge" geändert hat
Beispiel:
Bestandsdatum | Bestandsmenge
01.03.2017 | 15
03.03.2017 | 20
05.03.2017 | 5
Nun habe ich eine Abfrage mit folgender SQL-Syntax erstellt:
SELECT Datum.Datum, Bestand.Bestandsmenge
FROM Datum LEFT JOIN Bestand ON Datum.Datum = Bestand.Bestandsdatum;
Damit erhalte ich folgende Ausgabe:
Datum | Bestandsmenge
01.03.2017 | 15
02.03.2017 |
03.03.2017 | 20
04.03.2017 |
05.03.2017 | 5
Nun meine Frage. Wie muss ich den SQL-Syntax ändern, damit immer die letzte bekannte "Bestandsmenge" angezeigt wird? Also wie folgt:
Datum | Bestandsmenge
01.03.2017 | 15
02.03.2017 | 15
03.03.2017 | 20
04.03.2017 | 20
05.03.2017 | 5
Ich hoffe, es hat jemand eine Lösung für mein Problem und bedanke mich schon mal.
Viele Grüße
Tom
SELECT Max(Datum.Datum) AS Letzter, Bestand.Bestandsmenge
FROM Datum LEFT JOIN Bestand ON Datum.Datum = Bestand.Bestandsdatum;
"Datum" ist schelchte Benamsung, da reserviertes Wort.
Vielen Dank für die schnelle Antwort.
Leider klappt es nicht. ACCESS meldet folgenden Fehler: "Sie wollten eine Abfrage ausführen, die den angegebenen Ausdruck 'Bestandsmenge' nicht als Teil der Aggregatfunktion einschließt.
Grüße
Tom
Hallo Tom,
Sorry, mal wieder gar nicht richtig gelesen >:(
Muss ich noch mal einen Moment drüber nachdenken :-[
gruss ekkehard
ekkehard, wenn Du schon beim Nachdenken bist, erkläre doch bitte auch einmal die Bedeutung des Wortes "Benamsung" (im Duden habe ich dazu nichts finden können und eine gleichnamige chinesische Provinz konnte ich auch nicht ergründen). :)
Hallo,
http://universal_lexikon.deacademic.com/34252/Benamsung ;) :)
Hallo,
Zitaterkläre doch bitte auch einmal die Bedeutung des Wortes "Benamsung"
Meinst du das ernst?
https://www.google.de/?gws_rd=ssl#q=access+benamsungen&spf=1495123275055 (https://www.google.de/?gws_rd=ssl#q=access+benamsungen&spf=1495123275055)
Mit dem Nachdenken komme ich allerdings nicht weiter; - keine Ahnung wo's da beimir wieder hakt >:(
gruss ekkehard
Hallo,
wo(bei) denkst Du denn nach?
Die Fehlermeldung bedeutet, dass die Abfrage nicht gruppiert ist, was die Domänenfunktion erfordert.
Klar meine ich das ernst. Unter einer Benennung oder einer Benamung (klingt auch schon etwas merkwürdig) kann ich mir etwas vorstellen, selbst benamsen ist mir schon zu Ohren gekommen - mit dem Substantiv Benamsung bin ich (außerhalb von Access-Foren) allerdings noch nie nie in Berührung gekommen - aber vielleicht stamme ich ja auch nur aus der falschen Ecke Deutschlands. :)
Evtl. so:
SELECT
D.Datum,
IIF(B.Bestandsmenge IS NULL,
(
SELECT TOP 1
X.Bestandsmenge
FROM
tblBestand AS X
WHERE
X.BestandsDatum < D.Datum
ORDER BY
X.BestandsDatum DESC
)
, B.Bestandsmenge) AS Bestandsmenge
FROM
tblDatum AS D
LEFT JOIN tblBestand AS B
ON D.Datum = B.BestandsDatum
Zitatmit dem Substantiv Benamsung bin ich (außerhalb von Access-Foren)
W
Na, wo sind wir denn hier? ;)
@Eberhard
Danke.
Guten Morgen zusammen,
der Code von ebs17 war perfekt. Hat geklappt. Vielen Dank an alle für die schnelle Hilfe.
Grüße
Tom