Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
Jonatan500 Colaborador
Registrado: Sábado, 8 de Janeiro de 2011 Mensagens: 1064 Localização: Palmas/TO
|
Enviada: Seg Out 31, 2016 3:58 pm Assunto: Duvida Select Datas [Resolvido] |
|
|
Galera seguinte, to fazendo uma reserva aqui no sisteminha de hotel que tenho , e quero trazer os apartamentos que estão disponiveis para tal dia, e to meio atolado na logica e na select que devo fazer
bom vamos a um exemplo :
O Cliente faz uma reserva do apartamento 02 para o dia 03/11/2016 ate o dia 06/11/2016, ai no outro dia o cliente clica no calendario no dia 04 o apartamento 2 não vai poder mostrar como disponivel vai ter que fazer tipo um between pra fazer , enfim
to com a select pegando os apartamentos livres mas não esta filtrando com data ainda, e outra o between vai ter que ser por dois campos datas, Data de Check-in e Data de Check-out
é possivel ? ....
Código: | select * from apartamentos
left join reservas on apartamentos.NrQuarto = reservas.Apartamento
where reservas.`Status` is null |
_________________ "NESCIS QUIA EGO SUM PROGRAMMATOR"
#DelphiPower
Editado pela última vez por Jonatan500 em Seg Out 31, 2016 5:11 pm, num total de 1 vez |
|
Voltar ao Topo |
|
|
leo_cj Colaborador
Registrado: Sábado, 26 de Março de 2011 Mensagens: 1335
|
Enviada: Seg Out 31, 2016 4:30 pm Assunto: |
|
|
Tente fazer assim:
Código: |
select * from apartamentos
left join reservas on apartamentos.NrQuarto = reservas.Apartamento and (reservas.DTInicio <Data>= :Data)
where reservas.`Status` is null
|
Infelizmente não consegui testar o código por falta de tempo de criar a estrutura, mas acredito que se não for isso é quase isso |
|
Voltar ao Topo |
|
|
Jonatan500 Colaborador
Registrado: Sábado, 8 de Janeiro de 2011 Mensagens: 1064 Localização: Palmas/TO
|
Enviada: Seg Out 31, 2016 4:41 pm Assunto: |
|
|
Obrigato pela atenção leo, então vou expor outro exemplo para o que quero mais ou menos fazer
Vamos supor que tenho as seguintes reservas e apartamentos
Apartamento 1 - Reservado - CheckIn : 01/11/2016 Check-Out 06/11/2016
Apartamento 2 - Livre
Apartamento 3 - Reservado CheckIn 01/11/2016 CheckOut 03-11/2016
No Calendario de reservas o Cliente seleciona o Dia 05
No DbGrid Tera que aparecer que os Apartamentos
02 e 03 Estão Disponiveis nesse dia... e o Apartamento 01 nao pois o cara que esta la vai sair somente dia 06. Entendeu mais ou menos ? acho que minha select ta meia furada na logica. _________________ "NESCIS QUIA EGO SUM PROGRAMMATOR"
#DelphiPower |
|
Voltar ao Topo |
|
|
natanbh1 Colaborador
Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Seg Out 31, 2016 4:51 pm Assunto: |
|
|
Teste assim:
Código: | select * from apartamentos
left join reservas on apartamentos.NrQuarto = reservas.Apartamento
where reservas.Status is null or DataCheckout < :data |
Altere DataCheckout pelo nome correto do seu campo de Check-out. _________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin |
|
Voltar ao Topo |
|
|
leo_cj Colaborador
Registrado: Sábado, 26 de Março de 2011 Mensagens: 1335
|
Enviada: Seg Out 31, 2016 4:56 pm Assunto: |
|
|
Entendi, tenta assim:
Código: |
SELECT APARTAMENTOS.*
FROM APARTAMENTOS
WHERE NOT EXISTS(SELECT 1
FROM RESERVAS
WHERE RESERVAS.ID_APARTAMENTO = APARTAMENTOS.ID_APARTAMENTO
AND :DATARESERVA BETWEEN RESERVAS.DT_INICIO AND RESERVAS.DT_FIM)
|
|
|
Voltar ao Topo |
|
|
Jonatan500 Colaborador
Registrado: Sábado, 8 de Janeiro de 2011 Mensagens: 1064 Localização: Palmas/TO
|
Enviada: Seg Out 31, 2016 5:10 pm Assunto: |
|
|
Obrigado a todos que me ajudaram, Resolvi usando o código do léo .
valeu ai pessoal. _________________ "NESCIS QUIA EGO SUM PROGRAMMATOR"
#DelphiPower |
|
Voltar ao Topo |
|
|
|