| Autor |
Beitrag |
Tabakbrummel
      
Beiträge: 124
win 7
Turbo Delphi, VS 20010 Express
|
Verfasst: Mo 02.05.11 14:48
Hallo
Mein Problem ist es per sql die zweit höhsten Punkte addieren.
z.B.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| Name |Punkte|Punkte1|Punkte2| ------------------------------- Maier |1 |2 |3 |---> =5 ------------------------------- Fischer|6 |4 |5 |---> =11 ------------------------------- Bayer |2 |0 |2 |---> =4 |
Also mit den addieren habe ich erst mal so gemacht.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| with QSumme do begin Close; SQL.Clear; SQL.Add('update Tabelle set Gesamt = (Punkte + Punkte1 + Punkte2)'); ExecSQL; end; |
_________________ MfG
Tabakbrummel
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mo 02.05.11 15:28
Moin!
Hm, Zeilensummen sind allerdings spannend...
Was Besseres fällt mir gerade nicht ein:
SQL-Anweisung 1:
| UPDATE tmp SET gesamt = punkte1+punkte2+punkte3 -IF(punkte1 < IF(punkte2 < punkte3, punkte2, punkte3), punkte1, IF(punkte2 < punkte3, punkte2, punkte3)) | Da bin ich mal auf die SQL-Experten gespannt, das muss doch noch besser gehen.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Tabakbrummel 
      
Beiträge: 124
win 7
Turbo Delphi, VS 20010 Express
|
Verfasst: Mo 02.05.11 15:41
Hallo Narses
Funktioniert leider nicht. Da kommt die Fehlermeldung
Exception-Klasse EABSException mit Meldung 'Token ',' expected, but '-' found at line 1, column 54 - Native error: 30222'
_________________ MfG
Tabakbrummel
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mo 02.05.11 15:43
Moin!
Tabakbrummel hat folgendes geschrieben : | | Funktioniert leider nicht. Da kommt die Fehlermeldung |
Nun, ich gebe zu, dass ich es im MySQL-Dialekt getestet habe.  (und da funktioniert´s)
Probier mal den ganzen Ausdruck zu klammern.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Tabakbrummel 
      
Beiträge: 124
win 7
Turbo Delphi, VS 20010 Express
|
Verfasst: Mo 02.05.11 16:42
Hallo Narses
Funktioniert leider auch nicht.
_________________ MfG
Tabakbrummel
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Di 03.05.11 08:18
Moin!
Tabakbrummel hat folgendes geschrieben : | | Funktioniert leider auch nicht. |
Hm, schade. Ich gebe zu, ich kenne den von dir verwendeten SQL-Dialekt nicht. Kennt das DBMS evtl. kein IF?
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
jasocul
      
Beiträge: 6395
Erhaltene Danke: 149
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Di 03.05.11 08:48
SQL-Anweisung 1: 2: 3: 4: 5: 6: 7:
| update tabelle as ziel set gesamt = (select max(p) from( select punkte + punkte1 as p from tabelle where ziel.name = name union select punkte + punkte2 as p from tabelle where ziel.name = name union select punkt1 + punkte2 as p from tabelle where ziel.name = name)) |
Keine Ahnung, ob das mit Absolute Database funktioniert. Ich habe es bei mir auch nicht geprüft und nur mal schnell hingetippt.
Zuletzt bearbeitet von jasocul am Di 03.05.11 10:26, insgesamt 1-mal bearbeitet
|
|
Tabakbrummel 
      
Beiträge: 124
win 7
Turbo Delphi, VS 20010 Express
|
Verfasst: Di 03.05.11 09:28
Hallo Peter
Es funktioniert mit der Absolute Database.
Und vielen Besten dank. 
_________________ MfG
Tabakbrummel
|
|
jasocul
      
Beiträge: 6395
Erhaltene Danke: 149
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Di 03.05.11 10:28
Gern geschehen, wundert mich aber, da noch eine Klammer fehlte.
Ist jetzt aber korrigiert. 
|
|