duvida em instrução SQL

Delphi

25/04/2006

ola


Tenho 2 tabelas uma de OS e outra de tecnicos e outras +.
Na tabela OS tem 2 campos tecnico1 e tecnico2 onde eu gravo somenteo codigo do tenico q eu tenho cadastrado na tabela tecnicos.

o problema está em mostrar a tabela OS com os nomes dos tecnicos

eu fiz assim:

select * from os a , clientes b , tiposistema c, situacao d, tipoatend e, cidades f , tecnicos g where a.cliente=b.codigo and c.codigo=b.cod_sistema
and a.codsituacao = d.codigo and b.cidade=f.codigo and a.codatend= e.codigo and
((a.tecnico1=g.codigo or a.tecnico1 is null or a.tecnico1<>a.tecnico2 )or (a.tecnico2=g.codigo or a.tecnico2 is null or a.tecnico1<>a.tecnico2) )


so dessas forma so os items da OS q tiverem o campo tecnico igual e q aparece certo, os q nao sao igual ou sao null, da duplicidade.

como resolver?


Dart

Dart

Curtidas 0

Respostas

Dart

Dart

25/04/2006

alguem teve esse problema ?


GOSTEI 0
Isaiasbass

Isaiasbass

25/04/2006

Utilize Left Join

Ex.:
select A.Codigo , B.Nome 
from Table1 A
left join Table2 B on (A.Codigo = B.Codigo)


assim retorna os registros de Table1 mesmo q nao encontreo devido relacionamento.

dá uma fussada por aí q existe muitas formas de Join (inner , outer , left , right e etc)

Vlw..espero ter ajudado


GOSTEI 0
Dart

Dart

25/04/2006

Cara vo testa qq coisa eu posto o resultado vlw


GOSTEI 0
Dart

Dart

25/04/2006

Funcionou em partes.

Como tenho 2 campos tenicos na msm table de OS o nome do tenico so aparece quando os dois campos tenico da OS tem o msm codigo da Tabela Tecnico. Quando nao sao o msm nao aparece o nome do tenico.


GOSTEI 0
Dart

Dart

25/04/2006

Conseguir resolver.

Bom pelo menos foi o resultado q eu queria.
Se teverem outra forma pode me passar.

obrigado pela ajuda e atenção.
select * from os a , clientes b , tiposistema c, situacao d, tipoatend e, cidades f left join tecnicos g on (a.tecnico1 = g.codigo ) left join tecnicos h on (a.tecnico2 = h.codigo ) where a.cliente=b.codigo and c.codigo=b.cod_sistema and a.codsituacao = d.codigo and b.cidade=f.codigo and a.codatend= e.codigo order by a.codigo



GOSTEI 0
POSTAR