Order by em Union

Delphi

10/01/2008

Galera

É possível dar um order by em um UNION ??? Se alguém souber puder me passar um exemplo bem simples. Estou tentando aki mas não consigo.
Estou usando Delphi 6 + Firebird 2.0



Fico no aguardo

Rogério


Rogeranalista

Rogeranalista

Curtidas 0

Respostas

Pestana_

Pestana_

10/01/2008

sim é possivel, eu fiz pequeno exemplo aqui:

supondo que tenho duas tabelas

Tabela A id status 1 N 2 N ---------- Tabela B id status 1 N 2 S 3 S 4 S


vou agrupar pelo campo status e selecionar dentro deste grupo o valor ´N´ para depois unir com o resultado do select da tabelaA.
O importante é que os campo que estão sendo ´unidos´ tem que ser do mesmo ´tipo´.

SELECT status FROM tabelaA
UNION
SELECT status FROM tabelaB GROUP BY status HAVING status = ´N´


não sei se exclareci a sua dúvida, mas qualquer coisa posta novamente.
flw


GOSTEI 0
Djjunior

Djjunior

10/01/2008

select * from 
(
SELECT status FROM tabelaA 
UNION 
SELECT status FROM tabelaB ) s
order by status

ou 

SELECT campo1, campo2 FROM tabelaA 
UNION 
SELECT campo1, campo2 FROM tabelaB 
order by 2, 1 -- neste caso vou ordenar 1º pelo 2º campo depois pelo 1º


qdo vc tem union o order by só vai funcinar com o num da ordem do campo e ñ o nome do mesmo


GOSTEI 0
Pestana_

Pestana_

10/01/2008

nossa esqueci de acrecentar o [b:cca178fde5]ORDER BY 1[/b:cca178fde5] no final :oops:


ficando assim: :arrow:
SELECT status FROM tabelaA 
UNION 
SELECT status FROM tabelaB GROUP BY status HAVING status = ´N´
ORDER BY 1


[b:cca178fde5]djjunior[/b:cca178fde5] valeu por ter reparado nisso !


flw.


GOSTEI 0
POSTAR