Fórum Select com várias tabelas relacionadas #414022

14/03/2012

0

Galera eu estou precisando fazer uma consulta que me traga todos os clientes e os seguinte campos das outras tabelas relacionadas, rota, area e setor. conto com a ajuda de vocês.

Abaixo estou passando a estrutura de relacionamento no link abaixo;
http://www.7master.com.br/estrutura.gif

Eu estou fazendo esse select abaixo mas os clientes ficam duplicados.

SELECT distinct c.cli_id,
c.cli_razao, R.rot_descricao, A.are_descricao, S.set_descricao
FROM SETORES S
INNER JOIN ROTAS R
ON (R.ROT_ID = S.rota1)
OR (R.ROT_ID = S.rota2) OR (R.ROT_ID = S.rota3)
OR (R.ROT_ID = S.rota4) OR (R.ROT_ID = S.rota5)
OR (R.ROT_ID = S.rota6) OR (R.ROT_ID = S.rota7)
INNER JOIN AREAS A ON A.are_id = S.are_id
INNER JOIN CLIENTES C ON C.ROT_ID = R.ROT_ID
Sidney Abreu

Sidney Abreu

Responder

Posts

14/03/2012

Bruno Leandro

tenta desta forma

SELECT c.cli_id,
c.cli_razao,
R.rot_descricao,
A.are_descricao,
S.set_descricao
FROM CLIENTES C
INNER JOIN ROTAS R
ON (R.ROT_ID = C.ROT_ID)
INNER JOIN SETORES S
ON (S.rota1 = C.ROT_ID)
OR (S.rota2 = C.ROT_ID) OR (S.rota3 = C.ROT_ID)
OR (S.rota4 = C.ROT_ID) OR (S.rota5 = C.ROT_ID)
OR (S.rota6 = C.ROT_ID) OR (S.rota7 = C.ROT_ID)
INNER JOIN AREAS A
ON A.are_id = S.are_id


eu acredito que talvez uma solução para o seu modelo de banco de dados, seja colocar esses rotas dentro da tabela de setor seja outra tabela tipo setor_rota pois a utilização de tantos OR no select pode ficar lento e caso haja necessidade de mais rotas no setor voce tera que criar o rota8, rota9, etc
Responder

Gostei + 0

14/03/2012

Sidney Abreu

ainda está duplicando
Responder

Gostei + 0

14/03/2012

Bruno Leandro

você possui uma rota em mais de um setor?
Responder

Gostei + 0

15/03/2012

Sidney Abreu

as vezes sim e as vezes não, será que eu preciso mudar minhas tabelas?
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar