Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Abfrage Durchschnittspreis eines Artikels

Begonnen von Akuma, Januar 07, 2025, 14:17:11

⏪ vorheriges - nächstes ⏩

Akuma

Hallo Zusammen,

ich bin neu hier und habe eine kurze Frage zum Thema Durchschnittspreis im Access.

Kurze Information zum Stand:

Ich habe eine Artikelliste mit Artikelnummer und Preis. Hier bräuchte ich jedoch eine Abfrage, wo ich für einen bestimmten Artikel (auswählbar, wenn möglich) den Durchschnittspreis sehe. Da sich der Preis schließlich ständig ändert.

Vielen Dank im Voraus.
Akuma

MzKlMu

Hallo,
Deine Angaben sind ungenügend.

Wie ist die Tabelle mit dem Preis aufgebaut?
Gruß Klaus

Akuma

Hallo Klaus,

ich brauche eine Lagerliste für unser Lager, wo wir Artikel zu- und abbuchen. Diese hat mir ein Kollege auch erstellt. Leider konnte er mir bezüglich des Preises nicht helfen.

Was genau benötigen Sie von mir? Ich kenne mich leider nicht mit Access aus.

Die Feldeigenschaften oder die Feldnamen und Felddatentypen?

Liebe Grüße
Akuma



Bitsqueezer

Hallo Akuma,

für gewöhnlich sollte man die Tabellen, die man zum Ergebnis benötigt, auflisten, mit allen (mind. relevanten) Feldern.

Bei Artikeln und Preisen würde man jetzt man annehmen, daß es eine tblArtikel gibt und eine Tabelle tblArtikelPreise. In tblArtikelPreise stünde die ID_Artikel, die den Preis mit dem jeweiligen Artikel verbindet, und ein Feld Preis natürlich, i.d.R. dann auch ein Datumsfeld, wie "GültigAb", um den Zeitraum der Preisgültigkeit definieren zu können. Der Preis ist dann immer zwischen zwei "GültigAb"-Werten in zwei aufeinanderfolgenden (datumsmäßig sortierten) Zeilen (Datensätzen) gültig. Der letzte ist aktuell gültig.

Da wir Deine Tabellen nicht kennen, sind das die Informationen (als Beispiel), die Du liefern müßtest, um Dir konkret zu helfen. Am einfachsten schaust Du unter Datenbanktools in das Beziehungsfenster, wenn die Datenbank ordentlich designt ist, findest Du hier diese beiden Tabellen in ähnlicher Form. Die könntest Du als Screenshot bereitstellen.

Darüber hinaus kann man allgemein sagen, Du kannst (unabhängig von der Preisgültigkeit) eine gruppierte Abfrage auf die tblArtikelPreise erstellen, nach ID_Artikel gruppiert, und als zweites Feld der Abfrage (neben "ID_Artikel" mit der Einstellung "Gruppierung") kannst Du den Preis nehmen und als Funktion "Durchschnitt" bzw. "Average" oder AVG.

Im Ergebnis erhältst Du den Durchschnittspreis aller Preise aus der Preistabelle je Artikel. Das dann auf einen zu filtern oder Deinen Artikel aus der Liste herauszusuchen, ist ja dann nicht schwierig.

Wenn Du die Abfrage speicherst und eine zweite Abfrage erstellst, die die tblArtikel und die neue Abfrage beinhaltet, und Du ziehst die ID_Artikel als Linie zwischen beide, dann kannst Du auch als Feld den Artikelnamen mit einschließen, wenn Dir das lieber ist, und auch jedes andere Feld der Artikeltabelle - und natürlich den Durchschnittspreis aus der Abfrage.

Natürlich könnte man sich überlegen, ob man einen Durchschnittspreis auf die Dauer der jeweiligen Gültigkeit berechnet. Vielleicht hat jemand an 2 Tagen den Preis von 1 auf 10 geändert und am nächsten wieder auf 2. Dann wiegt bei der "einfachen" Durchschnittsberechnung jeder der drei Preise gleich viel, obwohl 1€ vielleicht 100 Tage drin stand und 2€ 40 Tage, während 10 € nur versehentlich drin war und nur einen Tag, trotzdem den Durchschnitt nach oben zieht.
Wenn man also den Durchschnittspreis so berechnen will, daß die Anzahl Tage eine Gewichtung darstellen, muß man den Gültigkeitszeitraum ebenfalls berechnen (DATEDIFF).
Dann hättest Du 1/100, 10/1 und 2/40, im Ganzen also statt 3 für den Durchschnitt zu nehmen, 141 als Anzahl.
Im einfachen Fall käme 4,33 als Durchschnittspreis, im anderen Fall 1,35, weil der "Ausreißer" dann kaum Gewicht mehr hat. Ohne diesen wäre es bei der einfachen Berechnung 1,5 ((1+2)/2).

Gruß

Christian