duvida em instrução SQL
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?
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
Curtidas 0
Respostas
Dart
25/04/2006
alguem teve esse problema ?
GOSTEI 0
Isaiasbass
25/04/2006
Utilize Left Join
Ex.:
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
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
25/04/2006
Cara vo testa qq coisa eu posto o resultado vlw
GOSTEI 0
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.
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
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.
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