Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi UNION ALL -> Problem beim Sortieren (https://www.delphipraxis.net/107096-union-all-problem-beim-sortieren.html)

hirnstroem 22. Jan 2008 13:05

Datenbank: MS Access • Version: kA • Zugriff über: ADO

UNION ALL -> Problem beim Sortieren
 
'loha Folks,

eine SQL Abfrage im folgenden Stil liegt vor:

SQL-Code:
SELECT 1 as DescriptionNumber, Description1 as Description
FROM Description
WHERE
...
ORDER BY Description1 ASC

UNION ALL

SELECT 2 as DescriptionNumber, Description2 as Description
FROM Description
WHERE
...
ORDER BY Description2 ASC
Es sollen also die Felder Description1 und Description1 und Description2 ein und desselben Datensatzes als zwei unterschiedliche Datensätze ausgegeben werden. Zudem sollen diese Datensätze anhand des Inhaltes der jeweiligen Description (1 oder 2) sortiert werden.

Nun verhält sich dies aber nicht wie gewünscht. Es ist so, dass jeweils die Description1 Felder in einer Gruppe sortiert sind und danach die Description2 Felder wiederum untereinander. Ich möchte aber das die Sortierung über beide Felder gemacht wird, weiss allerdings nicht so ganz wie, hoffe deshalb auf Hilfe.

Grüsse
hirnstroem

Codewalker 22. Jan 2008 13:10

Re: UNION ALL -> Problem beim Sortieren
 
Versuch doch mal folgendes:

SQL-Code:
Select * FROM
(
SELECT 1 as DescriptionNumber, Description1 as Description
FROM Description
WHERE
...

UNION ALL

SELECT 2 as DescriptionNumber, Description2 as Description
FROM Description
WHERE
...
)
ORDER BY Description ASC

hirnstroem 22. Jan 2008 13:16

Re: UNION ALL -> Problem beim Sortieren
 
Hallo Thomas,

bevor ich darauf gekommen wäre (hatte diverse andere Schreibweisen ausprobiert), hätte es wohl noch eine Weile gedauert. Aber wenn man das Konstrukt, wie von dir Präsentiert, so sieht, leuchtet es dann schon ein....aiaiai

Vielen Dank für die Hilfe!

Grüsse
hirnstroem

Union 22. Jan 2008 13:17

Re: UNION ALL -> Problem beim Sortieren
 
In einer Union ;) darf es nur ein ORDER BY statement geben. Das Gewünschte kannst Du so erreichen:

SQL-Code:
SELECT 1 as DescriptionNumber, Description1 as Description
FROM Description
WHERE
...
UNION ALL

SELECT 2 as DescriptionNumber, Description2 as Description
FROM Description
WHERE
...
ORDER BY Description


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:35 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz