ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Duvida Select Datas [Resolvido]

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
Jonatan500
Colaborador
Colaborador


Registrado: Sábado, 8 de Janeiro de 2011
Mensagens: 1064
Localização: Palmas/TO

MensagemEnviada: Seg Out 31, 2016 3:58 pm    Assunto: Duvida Select Datas [Resolvido] Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
leo_cj
Colaborador
Colaborador


Registrado: Sábado, 26 de Março de 2011
Mensagens: 1335

MensagemEnviada: Seg Out 31, 2016 4:30 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
Jonatan500
Colaborador
Colaborador


Registrado: Sábado, 8 de Janeiro de 2011
Mensagens: 1064
Localização: Palmas/TO

MensagemEnviada: Seg Out 31, 2016 4:41 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 3093
Localização: Belo Horizonte - MG

MensagemEnviada: Seg Out 31, 2016 4:51 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
leo_cj
Colaborador
Colaborador


Registrado: Sábado, 26 de Março de 2011
Mensagens: 1335

MensagemEnviada: Seg Out 31, 2016 4:56 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
Jonatan500
Colaborador
Colaborador


Registrado: Sábado, 8 de Janeiro de 2011
Mensagens: 1064
Localização: Palmas/TO

MensagemEnviada: Seg Out 31, 2016 5:10 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB