PROBLEMA NA CONSULTA .

Firebird

25/03/2013

O problema é o seguinte, possuo uma tabela OS (ordem de serviço) gostaria que a consulta trouxesse as ordens selecionada por datas, tecnico que efetuo a ordem e o tipo (CONTRATO ou AVULSO), o problema esta nesse tipo da ordem gostaria que trouxesse todas as ordem efetuadas pelo tecnico jonathan, no intervalo de data e que fossem contra ou avulsa, mas quando executo ela acaba trazendo todas OS que são contrato ou avulsa mas de todos os tecnicos.
Segue a consulta sql.

SELECT 
  OS.NUMERO,
  OS.DATA_REC,
  CLIENTES.NOME,
  OS.SITUACAO,
  OS.ATENDIMENTO,
  OS.CATEGORIA,
  TECNICOS.NOME,
  OS_SERV.OBS
FROM
  OS
  INNER JOIN CLIENTES ON (OS.CLIENTE = CLIENTES.CODIGO)
  INNER JOIN OS_SERV ON (OS.NUMERO = OS_SERV.NUMERO)
  INNER JOIN TECNICOS ON (OS_SERV.TECNICO = TECNICOS.CODIGO)
WHERE
  OS.DATA_REC >= '03/21/2013' AND
  OS.DATA_REC <= '03/21/2013' AND 
  TECNICOS.NOME = 'JONATHAN' AND
  OS.ATENDIMENTO='CONTRATO' OR
  OS.ATENDIMENTO='AVULSO'
ORDER BY
  OS.NUMERO
Guilherme

Guilherme

Curtidas 0

Respostas

Rafael Cunha

Rafael Cunha

25/03/2013

Cara tenta da seguinte maneira:

SELECT OS.NUMERO,
       OS.DATA_REC,
       CLIENTES.NOME,
       OS.SITUACAO,
       OS.ATENDIMENTO,
       OS.CATEGORIA,
       TECNICOS.NOME,
       OS_SERV.OBS
FROM OS
INNER JOIN CLIENTES ON OS.CLIENTE = CLIENTES.CODIGO
INNER JOIN OS_SERV ON OS.NUMERO = OS_SERV.NUMERO
INNER JOIN TECNICOS ON OS_SERV.TECNICO = TECNICOS.CODIGO
WHERE OS.DATA_REC between '03/21/2013' AND '03/21/2013'
  AND TECNICOS.NOME = 'JONATHAN' AND (OS.ATENDIMENTO='CONTRATO' OR
  OS.ATENDIMENTO='AVULSO')
ORDER BY OS.NUMERO
GOSTEI 0
Guilherme

Guilherme

25/03/2013

Rafael Dani da Cunha Muito obrigado. Resolveu perfeitamente.
GOSTEI 0
William

William

25/03/2013

Estou encerrando tópico, qualquer dúvida estamos a disposição ...
GOSTEI 0
POSTAR