Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Query mit UNION geht nicht (https://www.delphipraxis.net/62281-query-mit-union-geht-nicht.html)

Baeuerle 2. Feb 2006 12:56

Datenbank: Paradox • Version: 7 • Zugriff über: Query

Query mit UNION geht nicht
 
Hallo zusammen,

Warum funktioniert "UNION" nicht ? Es kommt immer ungültiges Schlüsselwort UNION als Fehler!!!


Delphi-Quellcode:
with tq.SQL do
 begin
 Clear;
 Text:='SELECT * FROM '+#39+tab_1+#39' AS SRC LEFT JOIN'+
        #39+tab_2+#39+' AS DST'#10+
        'ON (SRC.ID=DST.ID)'+#10+
        'ORDER BY Name'+#10+
        'UNION'+#10+
        'SELECT * FROM '+#39+tab_1+#39' AS SRC RIGHT JOIN'+
        #39+tab_2+#39+' AS DST'#10+
        'ON (SRC.ID<>DST.ID)'+#10+
        'ORDER BY Name';
 end;
tq.Open;

Danke

Horst_59 2. Feb 2006 14:00

Re: Query mit UNION geht nicht
 
Hallo,

die ORDER BY-Klausel solltest du erst nach dem UNION anwenden. Dann dürfte das Statement syntaktisch korrekt sein.

Gruß
Sebastian

omata 2. Feb 2006 14:36

Re: Query mit UNION geht nicht
 
Hallo Baeuerle,

wie Horst_59 schon schreibt nur am Ende ein ORDER BY.
Wenn du mehrere Tabellen über UNION verbindest erhälst du doch auch nur eine Tabelle und deshalb wird auch nur ein ORDER BY benötigt.

Delphi-Quellcode:
with tq.SQL do begin
  Clear;
  Text:=
    'SELECT *'#13 +
    ' FROM tab_1 AS SRC'#13 +
    ' LEFT JOIN tab_2 AS DST'#13 +
    '   ON SRC.ID = DST.ID'#13 +
    'UNION'#13 +
    'SELECT *'#13 +
    ' FROM tab_1 AS SRC'#13 +
    ' RIGHT JOIN tab_2 AS DST'#13 +
    '   ON SRC.ID <> DST.ID'#13 +
    'ORDER BY Name';
end;
tq.Open;
MfG
Thorsten


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:27 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