Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ElyCristina

[Resolvido] pesquisa sql com periodo de datas

Recommended Posts

O meu problema é que são duas datas Data de entrada e Data de saida eu preciso verificar se quais os apartametos que estarao ocupados no dia 08/10/2008 e os que estao vazios nesta mesma data.

eu não consegui fazer um between para verificar esse periodo... se alguém puder ajudar....

Create Table "HOSPEDAGEM"  (
"IDHOSPEDAGEM" Integer NOT NULL,
"DATAENTRADA" Date NOT NULL,
"DATASAIDA" Date NOT NULL,
"STATUS" Integer NOT NULL,
"TIPO" Varchar(20) NOT NULL,
"VALORDIARIA" Numeric(10,2) NOT NULL,
"IDAPARTAMENTO" Integer NOT NULL
);

Create Table "APARTAMENTO"  (
"IDAPARTAMENTO" Integer NOT NULL,
"DESCRICAO"
);

Compartilhar este post


Link para o post
Compartilhar em outros sites

hummm...

bom, pelo o que entendi você quer que na consulta liste os apartamentos que estarão ocupado naquela data e também os que estarão disponíveis, certo? (ou errado? ehehe)

 

SELECT *

FROM hospedagem

WHERE

(DATAENTRADA <= '2008-10-08' AND

DATASAIDA >= '2008-10-08') OR

DATASAIDA = '2008-10-08'

A condição em azul retorna todos os apartamentos que estarão ocupados (pode ser também que a saída seja o mesmo dia).

 

A condição em verde retorna todos os que estarão disponíveis na data.

 

Eu considerei como disponíveis a data de saída ok? (se não for só isto diz ae os possíveis valores dos demais campos com relação a situação).

 

O resultado foi algo do tipo:

IDHOSPEDAGEM 	DATAENTRADA 	DATASAIDA 	STATUS 	TIPO 	VALORDIARIA 	IDAPARTAMENTO 
1 			2008-10-05 	2008-10-12 	0 		1 		50.00 		1 
2			2008-10-08 	2008-10-15 	0 		1 		30.00 		1 
3 			2008-10-03 	2008-10-10 	1 		1 		30.00 		1 
5 			2008-10-01 	2008-10-10 	1 		2		30.00 		1

E os registros da tabela são:

IDHOSPEDAGEM 	DATAENTRADA 	DATASAIDA 	STATUS 	TIPO 	VALORDIARIA 	IDAPARTAMENTO 
1 				2008-10-05 	2008-10-12 	0 		1 	50.00 			1 
2 				2008-10-08 	2008-10-15 	0 		1 	30.00 			1 
3 				2008-10-03 	2008-10-10 	1 		1 	30.00 			1 
4 				2008-10-16 	2008-10-25 	1 		2 	40.00 			1 
5 				2008-10-01 	2008-10-10 	1 		2 	30.00 			1 
6 				2008-10-26 	2008-10-30 	1 		2 	30.00 			2

o formato da data está yyyy-mm-dd devido banco que utilizei: mysql.

 

qquer coisa posta ae

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.