Fórum Retornar exceções Sql #552927
02/05/2016
0
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
Curtir tópico
+ 0Post mais votado
03/05/2016
Emerson Nascimento
Gostei + 1
Mais Posts
02/05/2016
Mateus Ribeiro
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'
Gostei + 0
02/05/2016
Dirceu Morais
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.
Gostei + 0
03/05/2016
Dirceu Morais
Era o inverso disso que precisava, só fiz umas pequenas alterações e deu certo!!!!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)