[firebase-br] Ajuda con uniao de consultas

Jeudí Prando jeudiprando em gmail.com
Qui Ago 24 14:46:25 -03 2006


no segundo select acrescente as colunas
cast(null as tipodevalor_do_campo_nm_motorista)
cast(null as tipodevalor_do_campo_c.nm_cidade)
cast(null as tipodevalor_do_campo_d.nm_cidade)
cast(null as tipodevalor_do_campo_f.pl_engate)

o macete é

os dois sql retornarem a mesma quantidade de campo e os mesmos terem 
tipos de dados iguais utilize o cast(valor as tipo_de_valor), "valor": 
1,2,3,'nome' e "tipo_de_valor" varchar(10),varchar(20), 
integer,numeric(10,4)

quando um sql nao retornar a mesma quantidade de campos utilize 
cast(null as tipo_de_valor) para retornar um campo null do mesmo tidpo 
de valor
exemplo

select
    campo1 codigo,
    campo2 nome                  // varchar(60)
    campo3 segundo_nome   // varchar(30)
    campo4 data
from
    tabela1

union all

select
  campo1,
  cast(campo2 as varchar(60)), // este campo era varchar(30) e será 
convertido para varchar(60)
  cast(null as varchar(30))         // este campo nao exite na tabela2 
retorna vazio
  cast(null as date)
from tabela2


espero ter ajudado
boa sorte!!!
Galvao escreveu:
> Olá, tenho as consultas abaixo, elas funcionam perfeitamente. O que eu 
> estou precisando agora é unir elas em um único resultado. como Posso 
> fazer isto?
>
> consulta 1:
>  select v.data, v.conhecimento, v.valor, m.nm_motorista, c.nm_cidade, 
> d.nm_cidade, f.pl_engate
>     from viagens v INNER  JOIN tbl_motorista M
>     ON V.motorista=M.id_motorista
>     INNER JOIN tbl_CIDADE C
>     ON V.SAIDA=C.id_cidade
>     LEFT OUTER JOIN tbl_cidade D
>     ON V.DESTINO= D.id_cidade
>     INNER JOIN tbl_empresa E
>     on M.id_empresa=E.id_empresa
>     INNER JOIN tbl_FROTAS F
>     ON M.id_motorista=F.id_motorista
>     where (v.data between :dtini and :dtfim) and 
> e.id_empresa=m.id_empresa and e.nm_empresa=:empresa and 
> v.embarcador=:embarcador
>
> Consulta 2
>     SELECT O.DATA, O.CONHECIMENTO, O.VALOR
>     FROM TBL_OUTROS_VIAGENS O, TBL_EMPRESA E
>     where (O.DATA between :dtini and :dtfim) and E.ID_EMPRESA=O.EMPRESA 
> and E.NM_EMPRESA=:empresa
>     order by o.data, o.codviagen
>
>
> Desde já agradeço a ajuda de todos.
>
> Att.
>
> Rodrigo Galvan
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>   




Mais detalhes sobre a lista de discussão lista