Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

mehrere Datensätze einer Tabelle für berechnung verwenden

Begonnen von martin1991, Juli 16, 2019, 14:54:33

⏪ vorheriges - nächstes ⏩

martin1991

Hallo zusammen,

ich habe eine Excel Tabelle in der ich für mehrere Kunden auf einzelnen Tabelllenblättern Preisinfos eingebe.
Diese werden wöchentlich erneuert. Wir bekommen von mehreren Kunden Angebote / Preisinformationen für verschiedene Artikel. Da wir nur ein Zwischenhändler sind und nicht genau wissen, bei wem wir die Ware später unterbringen nehmen wir als Preisbasis einen Durchschnitt aus allen Angeboten pro Artikel (Teilweise mit gewichtetem Mittelwert).
In Excel funktioniert das auch alles. Nur leider sehr langsam und da die Datenbasis immer weiter wächst wird die Performance immer schlimmer.

Jetzt wollte ich das ganze in Access überführen. Dazu habe ich Tabellen für Kunden (Angebotsleger), Artikel und Angebote angelegt.

In der Tabelle Angebote sollen alle Angebote eingetragen werden (Artikel, Kunde, Preis, gültig von-bis).
Wie bekomme ich eine Auwertung her, die mir nun alle Angebote sucht die aktuell gültig sind und daraus für jeden Artikel einen Mittelwert (Mittelwert sollte nicht mit der Mittelwertfunktion gemacht werden, da sich teilweise Gewichtungen eingeben werden müssen, Angebot von Kunde A, ist mehr Wert wie Angebot von Kunde B) bildet?

Ich habe eine SQL Anweisung erstellt die mir alle gültigen Angebote eines Kunden auswirft.
Den Mittelwert bekomme ich aber nicht mehr hin.

Wäre super wenn mir da jemand helfen kann. Eventuell muss ich ja auch meine Struktur ändern.

Mfg
Martin

EDIT:
Mit dieser SQL-Abfrage bekomme ich jetzt schon die Mittelwerte hin.
Wie gesagt, die Gewichtung fehlt mir dabei aber:

SELECT E.IDArtikel, e.txtBezeichnung, a.datdatumvon, AVG(a.curPreis)

From (tblArtikel as E Inner Join tblAngebote as A On E.IDArtikel = a.intartikel_FS ) INNER JOIN

(SELECT B.intArtikel_FS, B.intKunde_FS, MAX(B.datDatumVon) as [Max-Datum]
FROM  tblAngebote as B
WHERE b.datdatumvon <= #6/21/2019#
GROUP BY B.intArtikel_FS, B.intKunde_FS) as C

ON a.intartikel_FS = C.intArtikel_FS and
A.datDatumVon  = C.[Max-Datum];