maximum aus drei feldern
Martin Hein
- datenbank
Hallo Forum,
in meiner DB-Tabelle stehen bei jedem Datensatz in drei Feldern
je ein Datum als Timestamp. Die Felder heissen in meinem Fall:
'modification_date'
'confirmation_date'
'online_date'
Bei manchen Datensätzen ist es 'modification_date', bei manchen
das 'confirmation_date' und bei anderen das 'online_date' das
jeweils grösse der drei.
Jetzt hätte ich das Result gerne sortiert:
1. Versuch:
-----------
Mit:
"
... ORDER by 'modification_date', 'confirmation_date', 'online_date'
"
... erreiche ich eigentlich garnichts.
2. Versuch:
-----------
Mit:
"
Select 'modification_date'+'confirmation_date'+'online_date' AS max
...
ORDER BY max
"
... erreiche ich zumindest, dass unabhängig davon, in welchem Feld
der Mximalwert steht, in meinem Result der grösste Wert oben steht.
Also schon nicht schlecht.
3. Versuch:
-----------
ich hätte nun genre, dass in meinem Result erst alle, die in dem
Feld 'online_date' den grössten Wert haben sortiert nach diesem
Wert, dann alle die in dem Feld 'confirmation_date' den grössten
Wert haben nach diesem Feld sortiert und dann alle, die in dem
Feld 'modification_date' den grössten Wert haben und dann nach
dem Feld sortiert. Logisch könnte ich mir das so vorstellen:
"
Select max('modification_date','confirmation_date','online_date') AS max
...
ORDER BY max
"
... geht ntürlich nicht.
kann mir jemand einen Tipp geben ?
danke und
beste gruesse,
martin
Hi,
wie wär's mit dem Gegenteil von LEAST(arg,arg,arg)? Wie es heisst, steht im Onlinehandbuch von MySQL. (Mir ist der Name grad entfallen.) Ich nehme an, dass du MySql verwendest.
Ciao, Frank
right,
"GREATEST()" heisst das Gegenstück und es macht genau das was
es soll.
prima!
merci für die antwort
Hallo Martin,
folgenden Spalten
'modification_date'
'confirmation_date'
'online_date'
und dieser Beschreibung
- Versuch:
ich hätte nun genre, dass in meinem Result erst alle, die in dem
Feld 'online_date' den grössten Wert haben sortiert nach diesem
Wert, dann alle die in dem Feld 'confirmation_date' den grössten
Wert haben nach diesem Feld sortiert und dann alle, die in dem
Feld 'modification_date' den grössten Wert haben und dann nach
dem Feld sortiert. Logisch könnte ich mir das so vorstellen:
würde ich natürlich die einfach Lösung
ORDER BY online_date, confirmation_date, modification_date
zuordnen, was meiner Meinung nach die richtige Lösung für Deine Beschreibung
ist. Ich entnehme Deinem Posting allerdings, dass Du dies gar nicht haben
willst, was Du beschreibst, sondern eine ganz andere Reihenfolge. Ich
vermute, dass Dir dabei die CASE-WHEN-Anweisung helfen könnte, bitte Dich
einfach mal Beispieldaten mit der gewünschten Sortierung vorzustellen,
damit ich verstehen kann, was Du wirklich willst.
Freundliche Grüße
Vinzenz