GARANTIR DESCONTO

Fórum Resultado de SQL dando registro dobrados... #353605

13/02/2008

0

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

Responder

Posts

13/02/2008

Flyskin

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...


Responder

Gostei + 0

13/02/2008

Jpauloss

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?


Responder

Gostei + 0

13/02/2008

Jpauloss

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



Responder

Gostei + 0

13/02/2008

Flyskin

blz... :D


Responder

Gostei + 0

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

Aceitar