AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Update

Ein Thema von Uwe 111 · begonnen am 23. Okt 2011 · letzter Beitrag vom 24. Okt 2011
Antwort Antwort
Seite 1 von 2  1 2      
Uwe 111

Registriert seit: 29. Nov 2005
61 Beiträge
 
#1

SQL Update

  Alt 23. Okt 2011, 15:02
Datenbank: Absolute Database • Version: ? • Zugriff über: ?
Hallo

Delphi-Quellcode:
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;
Result:
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
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#2

AW: SQL Update

  Alt 23. Okt 2011, 15:20
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Uwe 111

Registriert seit: 29. Nov 2005
61 Beiträge
 
#3

AW: SQL Update

  Alt 23. Okt 2011, 15:32
Hallo

Ich möchte das die Spalte Sales_Rank für immer gespeichert wird.

MFG
Uwe 111
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#4

AW: SQL Update

  Alt 23. Okt 2011, 15:38
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Uwe 111

Registriert seit: 29. Nov 2005
61 Beiträge
 
#5

AW: SQL Update

  Alt 23. Okt 2011, 15:53
Hallo


Also als erste Wertet ich die Spalte Sales_Rank aus.
Delphi-Quellcode:
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;
Nun ist mein Problem das die Werte der Spalte Sales_Rank nicht dauerhaft gespeichert sind.


Es sollen die Werte von Sales_Rank gespeichert werden.
1
2
3
3
5
6

MFG
Uwe 111
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#6

AW: SQL Update

  Alt 23. Okt 2011, 15:55
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Uwe 111

Registriert seit: 29. Nov 2005
61 Beiträge
 
#7

AW: SQL Update

  Alt 23. Okt 2011, 16:01
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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#8

AW: SQL Update

  Alt 23. Okt 2011, 16:18
Dann nimm doch Dein bisheriges Statement und benutze das für ein Einfüge-Statement.
SQL-Code:
INSERT INTO Tabelle(Feldliste)
SELECT Feldliste...
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#9

AW: SQL Update

  Alt 23. Okt 2011, 17:09
Dann nimm doch Dein bisheriges Statement und benutze das für ein Einfüge-Statement.
SQL-Code:
INSERT INTO Tabelle(Feldliste)
SELECT Feldliste...
Das passt aber nur schlecht in die Tabellenstruktur. Damit würde der Rang des Spielers nämlich bei jedem seiner Spielergebnisse eingetragen. Da sträubt sich bei mir aber so Einiges - Stichwort: Normalisierung
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#10

AW: SQL Update

  Alt 23. Okt 2011, 18:56
Apropos "Sträuben"
Was verkauft Ihr denn in der Skatrunde so alles?

Na, ist mir eigentlich doch egal.
Gruß, Jo
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz