GARANTIR DESCONTO

Fórum Retornar exceções Sql #552927

02/05/2016

0

Tenho um tabela com veículos e a escala deles.

Veiculo, entra_manha, Saida_manha, Entra_Tarde, Saida_Tarde


O usuário gostaria de saber se existe um carro que não esteja escalado em determinado horário.
Ex: 14:20 as 19:40

Tentei Assim:
select c.Veiculo, e.entra_manha, e.saida_manha, e.Entra_Tarde, e.Saida_Tarde
from Carros c
left join escala e on e.veiculo = c.Veiculo
where Not exists (Select e.id_escala from escala e
where (e.Veiculo = c.Veiculo) and (e.entra_Manha >= '14:20' and e.Saida_manha <= '19:40')
and (e.Saida_Tarde >= '14:20' and e.Saida_Tarde <= '19:40') )


Acho que esta faltando alguma comparação pq não está dano certo!


Desde já agradeço
Dirceu Morais

Dirceu Morais

Responder

Post mais votado

03/05/2016

Verifique se algo como o instrução deste link te ajuda.

Emerson Nascimento

Emerson Nascimento
Responder

Gostei + 1

Mais Posts

02/05/2016

Mateus Ribeiro

Boa tarde! Qual é seu banco de dados?

Fiz baseado no oracle, testa aí!

SELECT C.VEICULO, E.ENTRA_MANHA, E.SAI_MANHA, E.ENTRA_TARDE, E.SAI_TARDE
  FROM CARROS C
  LEFT JOIN ESCALA E
    ON E.VEICULO = C.VEICULO
 WHERE E.ENTRA_MANHA NOT BETWEEN '14:20' AND '19:40'
   AND E.SAI_MANHA NOT BETWEEN '14:20' AND '19:40'
   AND E.ENTRA_TARDE NOT BETWEEN '14:20' AND '19:40'
   AND E.SAI_TARDE NOT BETWEEN '14:20' AND '19:40'
Responder

Gostei + 0

02/05/2016

Dirceu Morais

Matteusin,

Estou usando o Firebird.

Veja bem, tenho a seguinte escala para o carro 60011

entrada Saida  Motorista 
10:30    13:30   João
14:20    17:40    Manoel
19:40    21:30   Joao
21:30    23:59   Manoel


Gostaria de saber se existe algum veiculo disponível no horário de 12:00 as 14:00.
Neste exemplo, este veiculo NÃO estaria dispónivel. Porque está sendo usado de 10:30 as 13:30 na escala do "JOAO" até ai tudo bem.
Mas o Sql esta retornando a Escala do "MANOEL" , Porque na escala do Manoel, esse horário estaria dispónivel,
O Sql deveria me retornar VAZIO ou seja, NÃO HÁ DISPONIBILIDADE DESSE HORÁRIO.



Não sei se ficou claro.
Responder

Gostei + 0

03/05/2016

Dirceu Morais

Emerson valeu,

Era o inverso disso que precisava, só fiz umas pequenas alterações e deu certo!!!!
Responder

Gostei + 0

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

Aceitar