AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken SQL Verschiedene ORDER BY - Werte

SQL Verschiedene ORDER BY - Werte

Offene Frage von "Wuaegner"
Ein Thema von Wuaegner · begonnen am 11. Feb 2007 · letzter Beitrag vom 16. Jul 2007
Antwort Antwort
Benutzerbild von Wuaegner
Wuaegner

Registriert seit: 8. Feb 2004
406 Beiträge
 
Delphi 6 Enterprise
 
#1

SQL Verschiedene ORDER BY - Werte

  Alt 11. Feb 2007, 12:02
Datenbank: SQL • Zugriff über: MySQL
Hallo,

ich habe eine Tabelle "Aufgaben" mit unter anderem den Spalten: "erledigt("erledigt"|"unerledigt")" und "Datum". Jetzt möchte ich gern eine SQL-Abfrage bauen, welche mir die Ergebnisse erst einmal nach erledigten und unerledigten Aufgaben sortiert ( ORDER BY `erledigt` DESC ) und zusätzlich, ( jetzt kommt das Problem ) , sollen die unerledigten Aufgaben AUFSTEIGEND und die erledigten Aufgaben ABSTEIGEND nach jeweils dem Datum sortiert werden. Hat jemand eine Idee ?


Mfg Flo
Wuaegner
Gruß Flo
Unternehmensberatung
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: SQL Verschiedene ORDER BY - Werte

  Alt 11. Feb 2007, 12:19
Wäre mit einem UNION möglich
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Wuaegner
Wuaegner

Registriert seit: 8. Feb 2004
406 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: SQL Verschiedene ORDER BY - Werte

  Alt 11. Feb 2007, 12:28
Wie sähe der UNION Befehl aus um unterschiedlich zu sortieren? Habe kein UNION Beispiel mit unterschiedlichen ORDER BY- Befehlen gefunden...
Wuaegner
Gruß Flo
Unternehmensberatung
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: SQL Verschiedene ORDER BY - Werte

  Alt 11. Feb 2007, 12:32
Das kommt auf die Datenbank an, ob sie das unterstützt.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Wuaegner
Wuaegner

Registriert seit: 8. Feb 2004
406 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: SQL Verschiedene ORDER BY - Werte

  Alt 11. Feb 2007, 12:41
Und wie sähe das SQL-Statement aus? ( Würde es dann testen )
Wuaegner
Gruß Flo
Unternehmensberatung
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: SQL Verschiedene ORDER BY - Werte

  Alt 11. Feb 2007, 12:47
Einfach die beiden Teilqueries mit Union zusammenhängen

SQL-Code:
select * from <tabelle> where erledigt order by datum desc
union
select * from <tabelle> where not erledigt order by datum asc;
Alternativ kann man auch ne SP schreiben.
Markus Kinzler
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: SQL Verschiedene ORDER BY - Werte

  Alt 16. Jul 2007, 14:16
Hallo,

der Thread ist schon älter, aber ich bin jetzt erst darüber gestolpert.

Sollte der SQL-Parser die ORDER BY Klausel bei Sets zulassen, die Teil einer UNION sind, dann wäre spätestens das Ergebnis wieder ungeordnet, da sich die Anordnung der Tupel in einem Result Set ohne ORDER BY von Lauf zu Lauf ändern darf.

MYSQL5 stellt aber durchaus sprachliche Möglichkeiten zur Verfügung, mit denen man das Problem lösen kann:

SQL-Code:
select * from aufgaben
order by erledigt desc, if(erledigt='erledigt', - CAST(datum as signed), CAST(datum as signed))
Die gewünschte Ordnung für das erste Sortierkriterium ist missverständlich formuliert und muss entsprechend angepasst werden.

Freundliche Grüße
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:55 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