Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Select de intervalos


dvenuzka

Pergunta

Boa tarde

Estou tentando montar um select que verifica os horarios que o veiculo está reservado e automáticamente não exibe para o usuário nas próximas reservas. O que ocorre é que com uma reserva no dia eu consigo eliminar o intervalo, mas se tiver mais de uma não funciona.

Estou anexando uma imagem com mais informações e a query usada. Se alguém puder me ajudar, agradeço.

Sem título.png

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Sabendo que o horário entre 10 e 15 está reservado, temos o select abaixo que retorna todos os horários reservados no intervalo:

 

select cod from horarios where horario between 10:00 and 15:00;

 

Se você deseja saber todos os horários que não estão no range acima então o select deverá ser o seguinte:

 

select * from horarios where NOT cod IN (select cod from horarios where horario between 10:00 and 15:00);

 

 

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde amigos

Obrigado pelas respostas, mas já resolvi o problema da seguinte forma:

SELECT H.* FROM HORARIOS H
                     WHERE NOT EXISTS (
                           SELECT * FROM RESERVAS R
                                WHERE H.COD BETWEEN R.COD_HORA_SAIDA AND
                                      R.COD_HORA_PREVISTA-1 AND
                                      R.COD_VEICULO = :codveiculo AND
                                      DATE_FORMAT(DATA_SAIDA, \'%d-%m-%Y\') = :codcalendario AND
                                      r.ativa = 1)
                                ORDER BY H.COD;

 

Dessa forma ele só exibe os horários vagos. 

Obrigado

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...