[MYSQL] Rang bestimmen

doped

abgemeldet
5 Mai 2006
290
8
Hallo
Ich suche eine möglichst saubere Lösung für folgendes Problem.
Es geht um ein Börsenspiel. Jeder User hat dort ein Depot. Nun soll ermittelt werden, am wie vielten Rang er steht. Dabei ist folgendes zu berücksichtigen:
- in Tabelle 'user' in der Spalte 'geld' steht wie viel Bargeld er hat
- in Tabelle 'depot' gibt es pro Aktie die er besitzt einen Datensatz. Dort ist die Menge gespeichert sowie eine Verknüpfung gelegt zur Tabelle user und zur Tabelle 'aktie'
- in Tabelle Aktie ist der aktuelle Kurswert gespeichert

Es soll also das Bargeld mit dem Depotwert (menge der jeweiligen Aktie*Kurswert) addiert werden. Wie mache ich das am besten? Schaffe ich das in einer Query?

MySQL ist das neuste installiert.
 
kein ahnung ob es funzt aber ich wäre folgendermaßen darangegangen:
Code:
select geld,(select sum(menge.depot*aktie.kurswert) as depotgeld from depot,aktie WHERE depot.aktie=aktie.kurswert and depot.user=93995) as depotgeld from user where id=93995
 
jo das müsste ich in die WHERE bekommen und dann über count die auslesen die mehr haben... dann hätte ich ja meinen rang... aber da fehlt mir die idee^^
 
hmm, also wenn man noch alle counten sollte, die schlechter sind, würde das ja einen ful-table-scan bedeuten und enormen aufwand für die berechnung.
implementier dann lieber eine weitere spiele, die diesen gesamt-geld wert jderzeit direkt als int speichert, denn solch ein query würde das system wirklich langsam machen, also wenn er öfters ausgeführt wird.