Comment faire ma requête ?

Résolu
Profil bloqué -  
Rusk Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je souhaite faire une requête mais celle-ci me pose problème (requête SQL).

Voici mon problème :

J'ai une table contenant des réservations. Donc il y a une date de début et une date de fin: date_deb_resa et date_fin_resa.

J'ai créer un formulaire (via le logiciel Windev). qui va me permettre de faire des recherches de réservations pour une période donnée.

Dans celle-ci je vais saisir la date de début ainsi que la date de fin de ma recherche.

Donc je vais exécuter une requête me permettant de trouver toutes les réservations pour cette période.

Pour le moment j'ai une réservation du:
10/06/2010 au 12/12/2011
01/01/2010 au 26/05/2010
28/05/2010 au 27/07/2010

Imaginons que je veux faire une recherche du 03/03/2010 au 29/05/2010, cela devra me ressortir les réservations du : 01/01/2010 au 26/05/2010 et du 28/05/2010 au 27/07/2010.

Comment faire ma requête svp ?


3 réponses

Rusk Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   1
 
SELECT *
    FROM reservation
    WHERE date_deb BETWEEN '03/03/2010' AND '29/05/2010'
    OR date_fin BETWEEN '03/03/2010' AND '29/05/2010';

Je crois que un truc comme ca devrais marcher.
1
Profil bloqué
 
Bonjour,

Je travaille sous Windev 12.
J'ai utilisé l'assistant de création de requête qui me donne :

SELECT 
	T_Reservation.IDT_Reservation AS IDT_Reservation,	
	T_Reservation.IDT_Piece AS IDT_Piece,	
	T_Reservation.IDT_Occupant AS IDT_Occupant,	
	T_Reservation.Date_Deb_Loc AS Date_Deb_Loc,	
	T_Reservation.Date_Fin_Loc AS Date_Fin_Loc,	
	T_Pieces.Numero_Zone AS Numero_Zone,	
	T_Pieces.Numero_Chambre AS Numero_Chambre,	
	T_Pieces.Libelle_Piece AS Libelle_Piece,	
	T_Pieces.Numero_Etage AS Numero_Etage
FROM 
	T_Pieces,	
	T_Reservation
WHERE 
		T_Reservation.IDT_Piece	=	T_Pieces.IDT_Piece
	AND
	(
		T_Reservation.IDT_Piece = {Param1}
		AND	
		(
			T_Reservation.Date_Deb_Loc BETWEEN {Param2} AND {Param3}
			OR	T_Reservation.Date_Fin_Loc BETWEEN {Param4} AND {Param5}
		)
	)


J'ai mis param2 = param 4 = 03/03/2010
param 3 = param 5 = 29/05/2010

et sa me sort les 3 ..;c'est bizarre je trouve.

Pourtant je pensais que ton code aurai marché...
0
Profil bloqué
 
En faite ton code est bon !

Lorsque j'ai testé la requête via l'outil de Windev, cela ma marqué : 20/03/0003 au lieu de 03/03/2010.

Donc sa marche bien en faite.

Merci bien Rusk pour ta réponse !
0
Rusk Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   1
 
De rien c'est un plaisir.
0