Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Union Select und ORDER BY (https://www.delphipraxis.net/69604-union-select-und-order.html)

mkinzler 17. Mai 2006 22:16

Re: Union Select und ORDER BY
 
Zitat:

@mkinzler : an SP habe ich bei der Sache hier noch gar nicht gedacht. Wie meinst Du das genau ? Bräuchte einen fetzen SQL-Beispielcode.
Zur Vollständigkeit:
SQL-Code:
begin
  for select * from <tabelle> where <bed1> order by <feld> into :feld1, feld2, ... do
  begin
  suspend;
  end
  for select * from <tabelle> where <bed2> order by <feld> into :feld1, feld2, ... do
  begin
  suspend;
  end
end

Hansa 18. Mai 2006 01:36

Re: Union Select und ORDER BY
 
Verdammt, komme nicht zum Ende. Wird wohl doch jetzt nichts mehr. Es sei denn einer ist noch da. 8)

SQL-Code:
SELECT 1 as REIHENFOLGE,A.NR AS ANR, A.BEZ FROM REC8 R JOIN ART8 A ON A.ID=R.ID_ART WHERE ID_RECKOPF = 93
UNION
SELECT 2 as REIHENFOLGE,A.NR AS ANR, A.BEZ FROM REC8 R JOIN ART8 A ON A.ID=R.ID_ART WHERE ID_RECKOPF = 93
UNION
SELECT 3 as REIHENFOLGE,A.NR AS ANR, A.BEZ FROM REC8 R JOIN ART8 A ON A.ID=R.ID_ART WHERE ID_RECKOPF = 93
ORDER BY REIHENFOLGE, ANR
Wo liegt nun der Unterschied zu dem Code von Omata und der Nomenklatur von Alex, oder was fehlt ?

Zitat:

Zitat von IBExpert
invalid ORDER BY clause.

Die Ergebnismenge scheint aber zu stimmen, sofern das Order by weggelassen wird kommt auch Ergebnis..

alex517 18. Mai 2006 07:55

Re: Union Select und ORDER BY
 
Zitat:

Zitat von IBExpert
invalid ORDER BY clause.

Entschuldigung, mein Fehler. In der ORDER BY Klausel, zumindest bei FB 1.x, können keine
Feldnamen angegeben werden. Stattdessen muß man die Nummer der Feldes angeben.

SQL-Code:
SELECT 1 as REIHENFOLGE,A.NR AS ANR, A.BEZ FROM REC8 R JOIN ART8 A ON A.ID=R.ID_ART WHERE ID_RECKOPF = 93
UNION
SELECT 2 as REIHENFOLGE,A.NR AS ANR, A.BEZ FROM REC8 R JOIN ART8 A ON A.ID=R.ID_ART WHERE ID_RECKOPF = 93
UNION
SELECT 3 as REIHENFOLGE,A.NR AS ANR, A.BEZ FROM REC8 R JOIN ART8 A ON A.ID=R.ID_ART WHERE ID_RECKOPF = 93
ORDER BY 1, 2
alex

TBx 18. Mai 2006 08:45

Re: Union Select und ORDER BY
 
@Hansa: Irgendwie ist der Sinn der Unions noch nicht erkennbar, da Du immer die gleiche Where-Clausel einsetzt ....
imho müstest Du über die WHERE-Clauseln entsprechend schlüsseln, um REIHENFOLGE festzulegen.

Gruß

onlinekater

Jelly 18. Mai 2006 12:11

Re: Union Select und ORDER BY
 
Zitat:

Zitat von onlinekater
@Hansa: Irgendwie ist der Sinn der Unions noch nicht erkennbar, da Du immer die gleiche Where-Clausel einsetzt ....

Das seh ich genauso... Ich würd die Query eventuell so formulieren

SQL-Code:
SELECT ID_RECKOPF, A.NR AS ANR, A.BEZ FROM REC8 R JOIN ART8 A ON A.ID=R.ID_ART WHERE ID_RECKOPF in (93,94,95)
order by ID_RECKOPF, a.NR

Hansa 18. Mai 2006 12:56

Re: Union Select und ORDER BY
 
Ihr habt lediglich zu wenig Phantasie. :mrgreen: Ich baue mir doch nicht eine komplizierte Logik zusammen, um dann feststellen zu müssen, daß die syntaktisch falsch ist. Das wird allerdings tatsächlich oft so gemacht, aber von mir nicht. :P @Alex : geht jetzt. :thumb: Und mit dieser Grundvoraussetzung gehe ich nun hin und schreibe das richtige SelectSQL mit den richtigen Feldern für das Programm. Da es tatsächlich so geht, was ich vorher ja nur vermutet hatte, wird das noch an anderen Stellen auch so gemacht werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:18 Uhr.
Seite 2 von 2     12   

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 by Thomas Breitkreuz