ReichMio Geschrieben 6. April 2006 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
baba007 Geschrieben 6. April 2006 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ReichMio Geschrieben 6. April 2006 Autor Teilen 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, Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ReichMio Geschrieben 6. April 2006 Autor Teilen 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.. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Code Poet Geschrieben 6. April 2006 Teilen 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! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
baba007 Geschrieben 6. April 2006 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.