SQL Abfrage Durchschnittspreis aller zeilen

Mitglied: boesi666

boesi666 (Level 1) - Jetzt verbinden

25.01.2016 um 21:47 Uhr, 2500 Aufrufe, 6 Kommentare

Nabend zusammen,

ich steh heute Abend irgendwie auf dem Schlauch. Könnt Ihr mir mal helfen? Ich habe eine Tabelle Wareneingaenge mit u.a. 2 spalten Menge, EinzelPreis

ArtikelID Menge EinzelPreis
2 4999 1
2 1 100
2 5 10
999 1 1

Nun möchte ich den Durchschnittspreis aller Artikel, deren Artikel ID 2 ist.

Es müssten also (4999*1)/Menge + (1*100)/Menge zusammen gerechnet werden. Ziel ist es in einer Wareneingangstabelle den Durchschnitt EK aller Einbuchungsvorgänge zu ermitteln

Könnt Ihr mir beim bilden des SQL Befehl helfen? Ich nutze eine access DB. MySQL oder MSSQL wäre aber auch verständlich für mich.
Mitglied: LordGurke
25.01.2016 um 22:05 Uhr
Noja, man kann zumindest bei MySQL direkt per AVG(`NameDerSpalte`) den Durchschnittswert dieser Spalte zurückgeben lassen, gleiches scheint es bei Access auch zu geben: http://www.techonthenet.com/access/functions/numeric/avg.php
Bitte warten ..
Mitglied: BirdyB
26.01.2016 um 08:06 Uhr
Moin,

Zitat von @boesi666:

Nabend zusammen,

ich steh heute Abend irgendwie auf dem Schlauch. Könnt Ihr mir mal helfen? Ich habe eine Tabelle Wareneingaenge mit u.a. 2 spalten Menge, EinzelPreis

ArtikelID Menge EinzelPreis
2 4999 1
2 1 100
2 5 10
999 1 1

Nun möchte ich den Durchschnittspreis aller Artikel, deren Artikel ID 2 ist.
Soweit klar...
Es müssten also (4999*1)/Menge + (1*100)/Menge zusammen gerechnet werden. Ziel ist es in einer Wareneingangstabelle den Durchschnitt EK aller Einbuchungsvorgänge zu ermitteln
Lege eine passende View für die gewünschte ID an (alternativ baue dir eine passende function), dann legst du dir eine Spalte oder bei der Function eine Variable für die Gesamtmenge an SUM(Menge) und eine Spalte für den Gesamtpreis (Menge* EinzelPreis) und dann teilst du SUM(Gesamtpreis) durch SUM(Menge) und damit solltest du dein Ergebnis haben.
Könnt Ihr mir beim bilden des SQL Befehl helfen? Ich nutze eine access DB. MySQL oder MSSQL wäre aber auch verständlich für mich.
Ich hoffe mit dem Weg kannst du die passenden SQL-Befehle selbst erstellen.
Wenn du noch Hilfe brauchst, sag Bescheid!

Beste Grüße!


Berthold
Bitte warten ..
Mitglied: SeverinWohlleben
26.01.2016, aktualisiert um 08:51 Uhr
Ungetestet, aber sollte funktionieren.
SELECT AVG(EinzelPreis) AS 'Durschnitt' FROM 'DeineTabelle' WHERE ArtikelID LIKE '2';

Zitat von @boesi666:
Es müssten also (4999*1)/Menge + (1*100)/Menge zusammen gerechnet werden.
Ziel ist es in einer Wareneingangstabelle den Durchschnitt EK aller Einbuchungsvorgänge zu ermitteln

Diese Rechnung (4999*1)/Menge + (1*100)/Menge ist übrigens völlig sinnfrei. Denn du rechnest hier folgendes:
(Menge * Einzelpreis) / Menge + (Menge * Einzelpreis) / Menge ... falls ich nichts komplett falsch verstanden hab bedeutet das...
(Menge * Einzelpreis) / Menge = Einzelpreis = Einzelpreis + Einzelpreis ... richtig wäre aber folgendes ...
Summe aus allen Einzelpreisen / Anzahl der verschiedenen Artikel mit ID gleich 2.
Bitte warten ..
Mitglied: BirdyB
26.01.2016 um 08:49 Uhr
Das wäre dann der ungewichtete Durchschnitt...
Ich dachte, der TO möchte ein gewichtetes Ergebnis.
Bitte warten ..
Mitglied: SeverinWohlleben
26.01.2016, aktualisiert um 10:08 Uhr
Absolut ungetestet und ich bezweifle selbst das es funktioniert...

SELECT (Einzelpreis*Menge)/menge AS Durchschnitt
FROM DeineTabelle
WHERE 'ArtikelID' LIKE '2'
Bitte warten ..
Mitglied: boesi666
26.01.2016 um 19:20 Uhr
ich danke Euch für die Tipps. Ich werd mich mal damit ran setzen und probieren. Wenn ich Erfolg habe, lasse ich es Euch wissen. Danke schonmal!!
Bitte warten ..
Heiß diskutierte Inhalte
Off Topic
Ein Weg weg von Microsoft. Wie würde man es angehen? Lasst uns doch etwas spinnen
it-fraggleVor 1 TagAllgemeinOff Topic53 Kommentare

Guten Morgen Kollegen, es treibt mich schon seit einigen Jahren um, dass es sinnvoll wäre langsam einen Weg weg von Microsoftprodukten zu finden. Mir ...

Hardware
Versorgungsengpass Chips
NebellichtVor 1 TagAllgemeinHardware22 Kommentare

Allg. frage ich mich ja warum Apple auf ARM frühzeitig gesetzt hat. Die Automobilindustrie gerade Absatzprobleme hat, weil keine Chips mehr geliefert werden können. ...

Windows Server
Server 2019 RDS-CALs für Domänen-Admins? Ernsthaft?
gelöst anteNopeVor 1 TagFrageWindows Server7 Kommentare

Nabend zusammen, ich habe hier heute einen RDS auf Basis eines Server 2019 STD installiert und mit User-CALs lizenziert. Soweit funktioniert auch alles. Nur ...

Festplatten, SSD, Raid
Wie würdet ihr eine Datenrettung machen?
pd.edvVor 22 StundenFrageFestplatten, SSD, Raid11 Kommentare

Hallo, ich arbeite gerade an einem Blog-Artikel zum Thema Datenrettung und würde mich brennend interessieren wie Ihr eine Datenrettung angehen würdet. Sagen wir mal ...

Multimedia
PDF Dokumente KOSTENLOS ausfüllen, wie?
Mrhallo19981Vor 1 TagFrageMultimedia12 Kommentare

Hallo, ich möchte PDF Dokumente kostenlos ausfüllen. Anschließend sollen diese Signiert werden. Signieren tu ich mit einem Zertifikat von Adobe. Deswegen ist es wichtig, ...

Windows Server
Lokaler DNS verlangsamt Internet?
gelöst Rattical84Vor 9 StundenFrageWindows Server20 Kommentare

Hallo zusammen, ich habe hier eine Domäne mit dem Domänencontroller als DNS-Server. Das ist der einzige DC und DNS-Server im Netz. Jetzt habe ich ...

Ubuntu
Installiert auf Rechner
khaldrogoVor 13 StundenFrageUbuntu9 Kommentare

Hallo Leute, Wir haben einen neuen Server bekommen, auf dem wir per Remotedesktopverbindung verbunden sind und arbeiten. Auf dem Server sind leider nicht alle ...

Server
Lets Encrypt unter Windows
IleiexVor 1 TagFrageServer7 Kommentare

Hallo Administrator, Ich habe mir auf Windows einen Xampp Server eingerichtet. Nun habe ich diverse Probleme, weil die domain kein gültiges Zertifikat aufweisen kann. ...