Resultado de SQL dando registro dobrados...

Delphi

13/02/2008

Galera esse SQL ta dando registros dobrados
select lancamento_projeto.*,
cast(total_x as float) as total_flt,
grupo.descricao_grupo, grupo.cod_grupo,
material.descricao,
material.un, material.preco_unitario,
projeto.nome_projeto
from lancamento_projeto, projeto, grupo
inner join material on
lancamento_projeto.cod_ordenado_m = material.cod_ordenado
and grupo.id_grupo = lancamento_projeto.cod_grupo_fk
where cod_projeto_lancamento=:cod_projeto_lancamento
order by cod_grupo, descricao_grupo, item

Exemplo: tem o ID_LANCAMENTO_PROJETO que é uma PK ta mostrando duas vezes de tudo.
Assim
332
332
333
333
334
334
Assim por diante....
Que faço?


Jpauloss

Jpauloss

Curtidas 0

Respostas

Flyskin

Flyskin

13/02/2008

esta consulta está te retorno um plano cartesiano de duas tabelas. verifique no plano da consulta para identificar onde está o problema olhando por cima acho que é a tabela projeto que não possui join com nenhuma outra...


GOSTEI 0
Jpauloss

Jpauloss

13/02/2008

esta consulta está te retorno um plano cartesiano de duas tabelas. verifique no plano da consulta para identificar onde está o problema olhando por cima acho que é a tabela projeto que não possui join com nenhuma outra...
Como faço o inner join com mais de duas tabelas?


GOSTEI 0
Jpauloss

Jpauloss

13/02/2008

Valeu resolvido!
select lancamento_projeto.*,
cast(total_x as float) as total_flt,
grupo.descricao_grupo, grupo.cod_grupo,
material.descricao,
material.un, material.preco_unitario,
projeto.nome_projeto, projeto.cod_projeto
from lancamento_projeto, projeto, grupo
inner join material on
lancamento_projeto.cod_ordenado_m = material.cod_ordenado
and grupo.id_grupo = lancamento_projeto.cod_grupo_fk
and projeto.cod_projeto = lancamento_projeto.cod_projeto_lancamento
where cod_projeto_lancamento=:cod_projeto_lancamento
order by cod_grupo, descricao_grupo, item



GOSTEI 0
Flyskin

Flyskin

13/02/2008

blz... :D


GOSTEI 0
POSTAR