Fórum order by union #38885
22/09/2003
0
grata!
****** erro *********
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 31, char -1.
union.
******* select *******
Select m.cod_estab,
m.duplicata,
m.desd,
m.cliente,
m.emissao,
m.vencimento,
m.representante,
m.saldo as valor,
r.razao_social as desc_representante,
u.descricao as desc_estab,
c.razao_social as desc_cliente,
RTRIM(c.cidade_cob)||´ / ´||c.uf_cob
as praca,
´A´ as tipo
from fimovrec m
left join facadrep r on r.codigo = m.representante
left join utcadest u on u.codigo = m.cod_estab
left join facadcli c on c.codigo = m.cliente
left join fiparams p on 0 = 0
where m.cod_estab = :cod_estab and
m.representante >= :codigo_ini and
m.representante <= :codigo_fim and
m.vencimento >= :data_ini and
m.vencimento <= :data_fim and
m.emissao >= p.base_comiss and
m.inclusao <= :data_ref and
m.vencimento > :data_ref and
m.saldo > 0
order by m.representante
union all
Select m.cod_estab,
m.duplicata,
m.desd,
m.cliente,
m.emissao,
m.vencimento,
m.representante,
m.saldo as valor,
r.razao_social as desc_representante,
u.descricao as desc_estab,
c.razao_social as desc_cliente,
RTRIM(c.cidade_cob)||´ / ´||c.uf_cob
as praca,
´V´ as tipo
from fimovrec m
left join facadrep r on r.codigo = m.representante
left join utcadest u on u.codigo = m.cod_estab
left join facadcli c on c.codigo = m.cliente
left join fiparams p on 0 = 0
where m.cod_estab = :cod_estab and
m.representante >= :codigo_ini and
m.representante <= :codigo_fim and
m.vencimento >= :data_ini and
m.vencimento <= :data_fim and
m.emissao >= p.base_comiss and
m.inclusao <= :data_ref and
m.vencimento <= :data_ref and
m.saldo > 0
order by representante
union all
Select m.cod_estab,
m.duplicata,
m.desd,
m.cliente,
m.emissao,
m.vencimento,
m.representante,
CAST((m.valor - m.saldo) as float)
as valor,
r.razao_social as desc_representante,
u.descricao as desc_estab,
c.razao_social as desc_cliente,
RTRIM(c.cidade_cob)||´ / ´||c.uf_cob
as praca,
´R´ as tipo
from fimovrec m
left join facadrep r on r.codigo = m.representante
left join utcadest u on u.codigo = m.cod_estab
left join facadcli c on c.codigo = m.cliente
left join fiparams p on 0 = 0
where m.cod_estab = :cod_estab and
m.representante >= :codigo_ini and
m.representante <= :codigo_fim and
m.vencimento >= :data_ini and
m.vencimento <= :data_fim and
m.emissao >= p.base_comiss and
m.inclusao <= :data_ref and
(m.valor - m.saldo) > 0
order by m.representante
Renata
Curtir tópico
+ 0Posts
23/09/2003
Marcio.theis
Gostei + 0
23/09/2003
Vilmardiogo
Order by m.representante;
Na claúsula order by do segundo select vc colocou assim:
Order by representate;
o ideal é que fique iguais:
Dica de otimização, ao invés disto:
m.representante >= :codigo_ini and
m.representante <= :codigo_fim and
m.vencimento >= :data_ini and
m.vencimento <= :data_fim and
Use assim:
m.representante between :codigo_ini and :codigo_fim and
m.vencimento between :data_Ini and :data_fim
é muito mais rápido ...
Gostei + 0
24/09/2003
Afarias
select campo1, campo2 from tabela1
union
select campoA, campoB from tabela2
order by 1
T+
Gostei + 0
16/11/2004
Michaell
Mas e se minhas tabelas tiverem campos com nomes diferentes? Por exemplo:
SAIDAS (CODIGO INTEGER, DATA TIMESTAMP, QUANTIDADE INTEGER);
ENTRADAS(CODIGO INTEGER, DATA_CADASTRO TIMESTAMP, QUANTIDADE INTEGER);
Supondo que eu queira que o resultado da minha union saia ordenado pela data??
[]´s
Gostei + 0
16/11/2004
Gandalf.nho
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)