[firebase-br] ajuda em select pra varias tabelas

Josauro S.J. josauro em casasoft.inf.br
Sex Nov 5 14:57:06 -03 2004


Use Left Join assim a tabela Produto é a mandatória, senão voce vai ter um monte de combinações.

Josauro S.J.
Diretor
josauro em casasoft.inf.br
----- Original Message ----- 
From: Hernando 
To: FireBase 
Sent: Friday, November 05, 2004 12:11 PM
Subject: [firebase-br] ajuda em select pra varias tabelas


bom tarde a todos!

estou montando um select que será usado em um relatorio, no caso eu 
preciso selecionar varios campos em varias tabelas e quero a ajuda de 
vc´s pq na visualisação há registros repitidos  pelo que tá sendo 
mostrado parece que tá sendo feito uma combinação de todos os campos tipo:

1001    operação A           2,15         
1001   operação B           7,25
1002    operação c           3,18
1002    operação D          0,99
1002    operacao B         3,18
1002    operacao a          0,99

e assim sucessivamente, pelo que vi parece que ele está combinando os 
campo com todas combinações(valores) possiveis.
quando na verdade o que eu queria seria:

selecione na tabela g  where idproduto = 10001  /// o produto
selecione na tablea  f where idproduto= g.idproduto   ////tabela  onde 
amarro os  componentes  nos produtos
selecione na tabela  c where idproduto=g.idproduto  /////tabela onde 
amarro as operações ao produto(internas)
seleccione na tabela d where cdcomponente = c.cdcomponente   //// pra 
poder pegar na tabela d a descrição das operações         que estão na 
tablea c
e assim sucessivamente.

vejam como estou fazendo:

select a.descricao, a.peso, b.quantidade as quantb, c.quantidade as 
quantc, c.prep, c.exec, c.tot, d.descricao as descd, d.equipamento, 
e.descricao as desce, e.custo, f.quantidade as qtf, g.idproduto, 
g.descricao as descg, h.preco from produto g  JOIN comproduto F ON 
(F.idproduto = G.idproduto) join opintproduto C ON(C.idproduto = 
G.idproduto) JOIN servicointerno D ON (D.cdinterno = C.cdinterno)join 
componente a on (a.cdcomponente = f.cdcomponente)   JOIN opextproduto B 
ON (B.idproduto = g.IDPRODUTO) join servicoexterno e on (e.cdservico = 
b.cdservico) join materiaprima h on (h.cdmateria = a.cdmateria)  where 
g.idproduto = 10001;

no caso há tabelas que não terão o mesmo numero de registro como 
resultado, daí a farofa que tá sendo feita na query.

D5/ FB 1.0

Hernando


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br




Mais detalhes sobre a lista de discussão lista