![]() |
Datenbank: Absolute Database • Version: ? • Zugriff über: ?
SQL Update
Hallo
Delphi-Quellcode:
Result:
SELECT a1.Name, a1.Sales, COUNT(a2.sales) Sales_Rank
FROM Total_Sales a1, Total_Sales a2 WHERE a1.Sales <= a2.Sales or (a1.Sales=a2.Sales and a1.Name = a2.Name) GROUP BY a1.Name, a1.Sales ORDER BY a1.Sales DESC, a1.Name DESC; Name Sales Sales_Rank Greg 50 1 Sophia 40 2 Stella 20 3 Jeff 20 3 Jennifer 15 5 John 10 6 Und nun zu mein Problem: Wie kann ich es hinbekommen das Sales_Rank updatet? MFG Uwe 111 |
AW: SQL Update
Ich verstehe vielleicht nicht, was du willst, aber Sales_Rank wird doch während des SELECT über COUNT(a2.sales) ermittelt. Sobald du das SELECT nochmal auf die aktualisierte Datenbank los lässt, wird es auch die aktuellen Daten liefern.
|
AW: SQL Update
Hallo
Ich möchte das die Spalte Sales_Rank für immer gespeichert wird. MFG Uwe 111 |
AW: SQL Update
Welcher Wert soll denn da gespeichert werden? Oder ist die Datenbank statisch und ändert sich nicht mehr? Normalerweise vermeidet man es, berechnbare Werte abzuspeichern, da es recht aufwändig ist, diese immer synchron zu halten.
Vielleicht holst du mal etwas weiter aus, damit man deine Absichten versteht. |
AW: SQL Update
Hallo
Also als erste Wertet ich die Spalte Sales_Rank aus.
Delphi-Quellcode:
Nun ist mein Problem das die Werte der Spalte Sales_Rank nicht dauerhaft gespeichert sind.
procedure TForm1.Button1Click(Sender: TObject);
begin with ABSQuery1 do begin Close; SQL.Clear; SQL.Add('SELECT a1.Name, a1.Sales, COUNT(a2.sales) Sales_Rank'); SQL.Add('FROM Total_Sales a1, Total_Sales a2 '); SQL.Add('WHERE a1.Sales <= a2.Sales or (a1.Sales=a2.Sales and a1.Name = a2.Name) '); SQL.Add('GROUP BY a1.Name, a1.Sales '); SQL.Add('ORDER BY a1.Sales DESC, a1.Name DESC;'); Open; end; end; Es sollen die Werte von Sales_Rank gespeichert werden. 1 2 3 3 5 6 MFG Uwe 111 |
AW: SQL Update
Ich schließe mich Uwe an: wozu sollen die gespeichert werden? Sobald sich in den betreffenden Daten etwas ändert, stimmen die gespeicherten Zahlen doch u.U. gar nicht mehr.
|
AW: SQL Update
Hallo
Ich Schreibe gerade ein kleines Rankingprogramm für unsern Skatverein. Da sich ja die Punkte (Beispiel Sales) sich nicht verändern will ich das die Plätze (Beispiel Sales_Rank) dauerhaft speichern. MFG Uwe 111 |
AW: SQL Update
Dann nimm doch Dein bisheriges Statement und benutze das für ein Einfüge-Statement.
SQL-Code:
INSERT INTO Tabelle(Feldliste)
SELECT Feldliste... |
AW: SQL Update
Zitat:
![]() |
AW: SQL Update
Apropos "Sträuben"
Was verkauft Ihr denn in der Skatrunde so alles? Na, ist mir eigentlich doch egal. |
AW: SQL Update
Ich habs auch nicht so ganz verstanden. Ein Ranking ändert sich doch dauernd, oder?
Will man natürlich festhalten wer wann welchen Platz hat, so braucht es mMn entweder eine zweite Tabelle, wo man dann die Rankings zu einem bestimmten Datum speichert, oder aber eine ganz andere Tabellenstruktur |
AW: SQL Update
Darauf wollte ich ja hinaus.
|
AW: SQL Update
Ich vermute,daß die erreichten Punkte oder von mir aus "Gewinn und Verlust" abgespeichert werden soll, das ändert sich zwar nach jedem Spiel aber wenn sein Herz daran hängt ?
Gruß K-H |
AW: SQL Update
Nun, ich vermute, er möchte das Ranking nach jedem Spiel speichern.
Dann kann man aus diesen historischen Werten eine Auswertung generieren, ohne alle Spiele neu durchrechnen zu müssen. Also wird eine RankingTabelle benötigt mit einem ForeignKey auf das Spiel und dort werden die Rankings gespeichert. |
AW: SQL Update
Was aber nur bei sehr großen Datenbeständen (Anzahl Einträge) Sinn macht.
|
AW: SQL Update
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz