Zum Inhalt springen

mit sql provision berechnen ?


ReichMio

Empfohlene Beiträge

hallo

ich hab ein keines problem

ich hab eine große tabelle in der verkaufspreise, verkäufer und vkdatum drin stehen.

ich möchte jetzt die provisionen ausrechnen.

mein ansatz war:

SELECT ((Select count(auto_id) from autos where vk_preis <= 5000 group by vk_von) * 50) as u_5000_provi, ((Select count(auto_id) from autos where vk_preis > 5000 and vk_preis <= 15000 group by vk_von) * 80) as u_15000_provi, u.vorname, u.name FROM autos a, user u WHERE YEAR(a.vk_datum) = 2006 and a.verkauft = 1 and a.vk_preis <= 5000 and vk_von = u.id group by a.vk_von

funktioniert natürlich nicht, da der innere select mehr als 1 zeile zurückliefert.

(sollte nur zur veranschaulichung dienen) ich könnt es natürlich auch mit php ausrechnen lassen... aber ich denke das geht auf die performance.

die ausgabe sollte wie folgt aussehen:

Benutzer;Umsatz;Provision

User1; 32.200.210; 1.150.200; Januar

User2; 25.501.325; 950.500; Januar

User1; 30.251.234; 1.100.200; Februar

User2; 40.251.241; 1.120.254; Februar

usw.

oder geht die ausgabe garnet ?

Danke

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du kannst im inneren Select ein aggregierendes Statement verwenden, dass die entsprechenden Werte erst berechnet und dann als skalare Größe im äußeren Statement weiter verwendet.

Das geht allerdings nicht mit allen Datenbanken uneingeschränkt. Da Du schreibst, dass Du in PHP programmierst, nehme ich an, dass Du MySQL benutzt. Das ist natürlich eine vergleichsweise "schwache" DB in diesen Dingen (will damit nicht in Frage stellen, dass es für Websites die beste schlechthin ist!).

Was die Performance angeht, ist es auch oft gut, zu probieren, was mehr drückt. Prinzipiell ist es natürlich meist performanter, solche Berechnungen direkt in der DB machen zu lassen, aber es war nicht selten der schnellere Weg, es doch in der Applikation zu machen; gerade wenn man mit MySQL arbeitet!

Einfach mal versuchen!

Link zu diesem Kommentar
Auf anderen Seiten teilen

also

tabelle autos

darin sind unteranderem

auto_id, vk_datum, vk_von, vk_preis,

dann gibts noch die tabelle user

userid,nachname, vorname,

mit performance meinte ich nur die wartezeit, bis die ganze seite aufgebaut ist..

also was braucht man alles ?

1) SELECT SUM(vk_preis), vk_von, MONTHNAME(vk_datum) as Monat

FROM autos GROUP BY vk_von, Monat

2) provisionsberechnung

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...