dedlfix: SQL Sortieren, nächstes Datum oben

Beitrag lesen

Tach!

Ich möchte aber, dass ganz oben die nächsten drei geplanten Einträge (in 'planung') von heute aus gesehen stehen, dann erst der Rest.

Man kann zwar die Datümer nach vor oder nach einem bestimmten Zeitpunkt unterscheiden (z.B. ORDER BY datum > NOW()), aber davon nur drei Stück nehmen, geht nicht so einfach. Dazu müssten ja die Datensätze in Bezug zueinander verglichen werden. Das ist so nicht vorgesehen, ein SQL-Server arbeitet eher mengenorientiert. Das heißt, du kannst zwas die drei nächste in der Zukunft, der Vergangenheit oder wenn du den Absolutbetrag der Differenz zu heute ausrechnest auch für beide ermitteln, indem du nur die zukünftigen oder vergangenen oder nach dieser Differenz sortierst und dann drei nimmst. Vom Rest der Datensätze könntest du diese drei ausschließen und ihn dann sortieren. Anschließend beides zusammenführen (UNION). Um den zweiten Teil zu ermitteln, müssten die drei Primärschlüssel des ersten Teils im WHERE-Teil ausgeschlossen werden, was mit einem Subselect ginge. Somit wäre die erste Query zum großen Teil ein weiteres mal in der Query aufzuführen.

dedlfix.