ReichMio Geschrieben 6. April 2006 Geschrieben 6. April 2006 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
baba007 Geschrieben 6. April 2006 Geschrieben 6. April 2006 ich könnt es natürlich auch mit php ausrechnen lassen... aber ich denke das geht auf die performance. wessen performance ? schreib bitte hin, welche tabellen betroffen sind und wie die spalten heissen
ReichMio Geschrieben 6. April 2006 Autor Geschrieben 6. April 2006 also tabelle autos darin sind unteranderem auto_id, vk_datum, vk_von, vk_preis, dann gibts noch die tabelle user userid,nachname, vorname,
ReichMio Geschrieben 6. April 2006 Autor Geschrieben 6. April 2006 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..
Code Poet Geschrieben 6. April 2006 Geschrieben 6. April 2006 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!
baba007 Geschrieben 6. April 2006 Geschrieben 6. April 2006 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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden