Fórum consulta com left join duplicando registros... #45470
12/07/2004
0
alo !?
tenho uma consulta... entre 3 tabelas...
COMANDA1 - ID_ESTABELECIMENTO,FONE_COMANDA1,NOME_COMANDA1,SUM(PRECO_COMANDA1)
ESTABELECIMENTO - CODIGO
CLIENTES - ENDERECO_CLIENTES1
preciso fazer a soma na tabela COMANDA1 por cliente...
até aí tudo certo...
select DISTINCT c1.id_estabelecimento,e.nome,c1.fone_comanda1,c1.nome_comanda1,
count(*),sum(c1.preco_comanda1)
from comanda1 c1
inner join estabelecimentos e on (e.codigo = c1.id_estabelecimento)
where
c1.data_comanda1 between ´05/01/04´ and ´05/31/04´
group by c1.id_estabelecimento,e.nome,c1.fone_comanda1,c1.nome_comanda1
order by c1.id_estabelecimento,sum(preco_comanda1) desc,nome_comanda1
mas nessa consulta eu preciso buscar o ENDERECO_CLIENTES da tabela clientes...
quando coloco o: left join clientes c on(c.fone_clientes = c1.fone_comanda1)
ele me retorna mais campos do que deveria ser... valores somas - absurdos.
select DISTINCT c1.id_estabelecimento,e.nome,c1.fone_comanda1,c1.nome_comanda1,c.endereco_clientes,
count(*),sum(c1.preco_comanda1)
from comanda1 c1
inner join estabelecimentos e on (e.codigo = c1.id_estabelecimento)
left join clientes c on(c.fone_clientes = c1.fone_comanda1)
where
c1.data_comanda1 between ´05/01/04´ and ´05/31/04´
group by c1.id_estabelecimento,e.nome,c1.fone_comanda1,c1.nome_comanda1,c.endereco_clientes
order by c1.id_estabelecimento,sum(preco_comanda1) desc,nome_comanda1
se alguem puder me ajudar...
desde ja agradeço
[]s
tenho uma consulta... entre 3 tabelas...
COMANDA1 - ID_ESTABELECIMENTO,FONE_COMANDA1,NOME_COMANDA1,SUM(PRECO_COMANDA1)
ESTABELECIMENTO - CODIGO
CLIENTES - ENDERECO_CLIENTES1
preciso fazer a soma na tabela COMANDA1 por cliente...
até aí tudo certo...
select DISTINCT c1.id_estabelecimento,e.nome,c1.fone_comanda1,c1.nome_comanda1,
count(*),sum(c1.preco_comanda1)
from comanda1 c1
inner join estabelecimentos e on (e.codigo = c1.id_estabelecimento)
where
c1.data_comanda1 between ´05/01/04´ and ´05/31/04´
group by c1.id_estabelecimento,e.nome,c1.fone_comanda1,c1.nome_comanda1
order by c1.id_estabelecimento,sum(preco_comanda1) desc,nome_comanda1
mas nessa consulta eu preciso buscar o ENDERECO_CLIENTES da tabela clientes...
quando coloco o: left join clientes c on(c.fone_clientes = c1.fone_comanda1)
ele me retorna mais campos do que deveria ser... valores somas - absurdos.
select DISTINCT c1.id_estabelecimento,e.nome,c1.fone_comanda1,c1.nome_comanda1,c.endereco_clientes,
count(*),sum(c1.preco_comanda1)
from comanda1 c1
inner join estabelecimentos e on (e.codigo = c1.id_estabelecimento)
left join clientes c on(c.fone_clientes = c1.fone_comanda1)
where
c1.data_comanda1 between ´05/01/04´ and ´05/31/04´
group by c1.id_estabelecimento,e.nome,c1.fone_comanda1,c1.nome_comanda1,c.endereco_clientes
order by c1.id_estabelecimento,sum(preco_comanda1) desc,nome_comanda1
se alguem puder me ajudar...
desde ja agradeço
[]s
Seven
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)