[firebase-br] Tabela com 2 IDs

MagnoS magnoscosta em bol.com.br
Qua Nov 21 10:14:49 -03 2007


Esse é a copia fiel do SQL?
Se for o erro provavelmente deve ser aquele conhecido como "produto 
cartesiano"....
ou seja uma das tabelas nao esta unida..
Antes de dar a solução vai uma dica...
Quando vc estiver montando instruções com várias tabelas, quando entrar na 
parte "Where" tente sempre pegar da mais importante pra menos importante... 
e veja se todas as incluidas em "from" estao contidas.

veja:

from ctrc c,
         rota r,
         empresa re,
         empresa de,
         logradouro lre,
         logradouro lde,
         cidade ci_re,
         cidade ci_de,
         motorista m,
         veiculo v

  where r.id_remetente   = re.id_empresa
      and r.id_destino     = de.id_empresa
      and re.id_logradouro = lre.id_logradouro
      and de.id_logradouro = lde.id_logradouro
      and lre.id_cidade    = ci_re.id_cidade
      and lde.id_cidade    = ci_de.id_cidade

onde esta ctrc e rota????
levando em consideração que ctrc é a cabeça de tudo:

  where c.id_ctrc           = r.id_ctrc ??
      and r.id_remetente = re.id_empresa
      and r.id_destino     = de.id_empresa
      and re.id_logradouro = lre.id_logradouro
      and de.id_logradouro = lde.id_logradouro
      and lre.id_cidade    = ci_re.id_cidade
      and lde.id_cidade    = ci_de.id_cidade

blz...
Abraços....

----- Original Message ----- 
From: "Diego Seleguim" <seleguim em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Tuesday, November 20, 2007 11:44 PM
Subject: Re: [firebase-br] Tabela com 2 IDs


select
    c.id_ctrc,
    c.id_rota,
    r.id_remetente,
    re.nome_empresa as remetente,
    re.cnpj_cgc as cgc_remet,
    re.inscr_estadual as ie_remet,
    lre.endereco as end_remet,
    re.num_end as num_remet,
    ci_re.nome_cidade as cidade_remet,
    ci_re.estado as uf_remet,

    r.id_destino,
    de.nome_empresa as destinatario,
    de.cnpj_cgc as cgc_destino,
    de.inscr_estadual as ie_destino,
    lde.endereco as end_destino,
    de.num_end as num_destino,
    ci_de.nome_cidade as cidade_destino,
    ci_de.estado as uf_destino,

    r.icms as icms_rota, r.frete_ton as frete_rota, r.pedagio as
pedagio_rota, c.data_emissao, c.cfop, c.produto, c.especie, c.quantidade,
c.peso, c.nota_fiscal,
    c.valor_mercadoria, c.frete_ton, c.pedagio, c.total_prestacao,
c.base_calculo, c.frete_valor, c.aliquota,
    c.icms, c.km_inicial, c.km_final, c.hora_saida, c.hora_chegada,
c.data_saida,
    c.data_chegada,

    m.id_motorista, m.nome_motorista,
    v.id_veiculo, v.placa, v.descricao

    from ctrc c, rota r, empresa re, empresa de, logradouro lre, logradouro
lde,
    cidade ci_re, cidade ci_de, motorista m, veiculo v

    where r.id_remetente = re.id_empresa
    and r.id_destino = de.id_empresa
    and re.id_logradouro = lre.id_logradouro
    and de.id_logradouro = lde.id_logradouro
    and lre.id_cidade = ci_re.id_cidade
    and lde.id_cidade = ci_de.id_cidade

Andei alterando algumas coisas, e agora tá me retornando valores
repetidos...

Como resolver isso??

Obrigado a todos pela atenção!
______________________________________________
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