ich hab leider ein kleines Problem und möchte die tabelle Rank den Platz Updaten. Leider komme ich mit den Code nicht weiter.
with ABSQuery1 do
begin
Close;
SQL.Clear;
SQL.Add(‚UPDATE Rank SET Platz =‘);
SQL.Add(’(select R1.Name, R1.Punkte, count(R2.Punkte) as Platz ');
SQL.Add(‚from Rank R1, Rank R2‘);
SQL.Add('where ((R1.Punkte
SQL.Add(‚UPDATE Rank SET Platz =‘);
SQL.Add(’(select count(R2.Punkte) as Platz ');
Ich habe mal den Name und Punkte raus genommem, dann updatet er nur den letzten Count. Aber ich möchte es so haben das der Platz zum Beispiel
Punkte | Platz
1234__|1
_223__|2
ist.
SQL.Add('select R1.Name, R1.Punkte, count(R2.Punkte) as Platz ');
SQL.Add(‚from Rank R1, Rank R2‘);
SQL.Add('where ((R1.Punkte
das problem ist das du 3 Felder versuchst in 1 Feld zu schreiben.
Du musst die drei Felder zu einem Wert zusammenfassen. Es hängt von der von dir verwendeten Datenbank ab wie zu es zu einem String konkatenierst. Zum Beispiel bei PL/SQL ist es „||“ bei T/SQL gehts mit „+“
SQL.Add(’(select R1.Name || R1.Punkte || count(R2.Punkte) as Platz ');
SQL.Add(’(select R1.Name + R1.Punkte + count(R2.Punkte) as Platz ');
UPDATE Rank SET Platz = (
SELECT COUNT(R2.Punkte)
FROM Rank R1, Rank R2
WHERE ((R1.Punkte
Das Problem ist wie ich bereits sagte das du nicht mehrere Felder in eins schreiben kannst.
Du kannst nur den Inhalt aus diesen Felder zu einem Wert zusammenfassen und ihn dann schreiben, sofern du das willst.
UPDATE Rank SET Platz = (
SELECT COUNT(R2.Punkte)
FROM Rank R1, Rank R2
WHERE ((R1.Punkte
Geht nicht weil nur die anzahl der zeilen gespeichert werden.
Also ich möchte aus den Punkten ein ranking haben. Vieleicht geht es auch anders.(Absolute Database hat leider kein Rank() over
MfG
Aal Angler
Name ! Punkte ! Platz
------+----------+--------
aaa ! 20 !
bbb ! 40 !
ccc ! 10 !
und du möchstest jetzt, das in der Spalte „Platz“ entsprechend das Ranking eingetragen wird (also bei aaa eine 2, bei bbb eine 1 und bei ccc eine 3)
Dann veruch mal folgendes:
UPDATE Rank R1
SET Platz = (SELECT COUNT(\*)
FROM Rank R2
WHERE R2.Punkte
Einziges Manko:
Bei 2 Zeilen mit der gleichen Punktzahl bekommen beide das gleiche (schlechtere) Ranking.
Gruß,
Darkwing ^v^