Entwickler-Ecke
Datenbanken - sql von drei die zweit höhsten Punkte summieren
Tabakbrummel - Mo 02.05.11 14:48
Titel: sql von drei die zweit höhsten Punkte summieren
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; |
Narses - Mo 02.05.11 15:28
Moin!
Hm,
Zeilensummen sind allerdings spannend... :?
Was Besseres fällt mir gerade nicht ein: :nixweiss:
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. :zustimm:
cu
Narses
Tabakbrummel - 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'
Narses - 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. :idea: :nixweiss:
cu
Narses
Tabakbrummel - Mo 02.05.11 16:42
Hallo Narses
Funktioniert leider auch nicht.
Narses - 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? :nixweiss:
cu
Narses
jasocul - 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.
Tabakbrummel - Di 03.05.11 09:28
Hallo Peter
Es funktioniert mit der Absolute Database. :dance2:
Und vielen Besten dank. :beer:
jasocul - Di 03.05.11 10:28
Gern geschehen, wundert mich aber, da noch eine Klammer fehlte. :rofl:
Ist jetzt aber korrigiert. :wink:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!