Fórum Ajuda com com UNION e o erro no ORDER BY #559313
15/07/2016
0
Em uma consulta com UNION estou tendo erro no ORDER BY:
Se eu comento a cláusula order by, não gera erro.
Segue a consulta:
Firebird 2.5
can't format message 13:896 -- message system code -4.
Dynamic SQL Error.
SQL error code = -104.
Invalid command.
invalid ORDER BY clause.
Dynamic SQL Error.
SQL error code = -104.
Invalid command.
invalid ORDER BY clause.
Se eu comento a cláusula order by, não gera erro.
Segue a consulta:
SELECT
CAST('1' AS CHAR(1)) AS TIPO,
T.TITULO_ID,
TIT_TOTAL.*
FROM
TITULO T
LEFT JOIN
PC_TIT_TOTAL(T.TITULO_ID,
:nat_valor_bruto,
:nat_valor_desconto,
:nat_valor_acrescimo,
:nat_valor_baixado,
:tipo_credito,
:tipo_debito) TIT_TOTAL ON
(TIT_TOTAL.TITULO_ID = T.TITULO_ID)
WHERE
(T.EMPRESAS_ID = :EMPRESAS_ID) AND
(T.LAN_NAT_ID = :TIPO_ID_REC)
UNION ALL
SELECT
CAST('2' AS CHAR(1)) AS TIPO,
T.titulo_id,
TIT_TOTAL.*
FROM
TITULO T
LEFT JOIN
PC_TIT_TOTAL(T.TITULO_ID,
:nat_valor_bruto,
:nat_valor_desconto,
:nat_valor_acrescimo,
:nat_valor_baixado,
:tipo_credito,
:tipo_debito) TIT_TOTAL ON
(TIT_TOTAL.TITULO_ID = T.TITULO_ID)
WHERE
(T.EMPRESAS_ID = :EMPRESAS_ID) AND
(T.LAN_NAT_ID = :TIPO_ID_PAG)
ORDER BY
T.TITULO_IDFirebird 2.5
Multi Ltda
Curtir tópico
+ 0
Responder
Posts
15/07/2016
Mario França
Quando se trabalha com UNION, não pode fazer order by, você precisa abstrair este union para uma subconsulta depois aplicar um order by.
Exemplo:
select id, nome from
(
select id, nome from tabelaA
union
select id, nome from tabelaB
) s1
order by id
Exemplo:
select id, nome from
(
select id, nome from tabelaA
union
select id, nome from tabelaB
) s1
order by id
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)