GARANTIR DESCONTO

Fórum SQL com UNION #48070

16/11/2004

0

Colegas,

Afinal, quando eu posso usar ORDER BY com UNION no Interbase 7.1??
Postei em um topico anterior mas ninguem respondeu... Tentei aproveitar o topico de uma colega, mas...

[]´s


Michaell

Michaell

Responder

Posts

16/11/2004

Sremulador

Em cada finalização de union você pode colocar ou então crie uma view e coloque no final da pesquisa ...


Responder

Gostei + 0

16/11/2004

Michaell

Em cada finalização de union você pode colocar ou então crie uma view e coloque no final da pesquisa ...


Tenho, supostamente, três tabelas:

1) ENTRADAS (CODIGO INTEGER, DATA_CADASTRO TIMESTAMP, QUANTIDADE INTEGER);
2) SAIDAS (CODIGO INTEGER, DATA TIMESTAMP, QUANTIDADE INTEGER);
3) INVENTARIO (CODIGO, DATA TIMESTAMP, QUANTIDADE INTEGER).

Se eu fizer os 2 UNIONS no meu comando SQL colocando os ORDER BY como você disse, não funciona, dá erro...
Poderia me dar um exemplo?

[]´s


Responder

Gostei + 0

16/11/2004

Gandalf.nho

Pelo que me lembro, ele só aceita ORDER BY no final da SQL.


Responder

Gostei + 0

17/11/2004

Michaell

Pelo que me lembro, ele só aceita ORDER BY no final da SQL.


Assim?

    SELECT
           R.CODIGO,
           R.DATA_CADASTRO,
           RP.QUANTIDADE
      FROM REQUISICAO R
INNER JOIN REQUISICAO_PRODUTO RP
        ON RP.REQUISICAO = R.CODIGO
     WHERE RP.PRODUTO = 1

UNION

    SELECT
           E.CODIGO,
           E.DATA_CADASTRO,
           EP.QUANTIDADE_NOTA
      FROM ENTRADA E
INNER JOIN ENTRADA_PRODUTO EP
        ON EP.ENTRADA = E.CODIGO
     WHERE EP.PRODUTO = 1

ORDER BY R.DATA_CADASTRO, E.DATA_CADASTRO


Erro: ´Invalid command, invalid ORDER BY CLAUSE´

O que está errado em meu comando?

[]´s


Responder

Gostei + 0

17/11/2004

Gandalf.nho

Você não se refere ao nome das tabelas no ORDER BY, faça assim:

SELECT
R.CODIGO,
R.DATA_CADASTRO,
RP.QUANTIDADE
FROM REQUISICAO R
INNER JOIN REQUISICAO_PRODUTO RP
ON RP.REQUISICAO = R.CODIGO
WHERE RP.PRODUTO = 1
UNION
SELECT
E.CODIGO,
E.DATA_CADASTRO,
EP.QUANTIDADE_NOTA
FROM ENTRADA E
INNER JOIN ENTRADA_PRODUTO EP
ON EP.ENTRADA = E.CODIGO
WHERE EP.PRODUTO = 1
ORDER BY DATA_CADASTRO


Responder

Gostei + 0

17/11/2004

Afarias

Pelo que me lembro, ele só aceita ORDER BY no final da SQL.


Exatamente!

O ORDER BY só aparece 1 vez no SELECT e é a última cláusula


Você não se refere ao nome das tabelas no ORDER BY


Na verdade vc pode se referir (e deve, especialmente em JOINS) mas o problema ai é o UNION, neste caso deve ser usada a posição do campo:

SELECT {...} ORDER BY 2


T+


Responder

Gostei + 0

17/11/2004

Gandalf.nho

Quando eu me referi a não usar o nome das tabelas no ORDER BY, esqueci de dizer que era só em UNIONs, desculpe pela confusão.


Responder

Gostei + 0

17/11/2004

Afarias

Quando eu me referi a não usar o nome das tabelas no ORDER BY, esqueci de dizer que era só em UNIONs, desculpe pela confusão.


;-)


Responder

Gostei + 0

18/11/2004

Michaell

Na verdade vc pode se referir (e deve, especialmente em JOINS) mas o problema ai é o UNION, neste caso deve ser usada a posição do campo: SELECT {...} ORDER BY 2


Agora foi... Valeu, pessoal! Ufa... :P

[]´s


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar