Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/05/2011, 11h24   #1
Membre du Club
 
Homme Guillaume
Développeur .NET
Inscription : mars 2006
Messages : 127
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 27
Localisation : France, Vosges (Lorraine)

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2006
Messages : 127
Points : 40
Points : 40
Par défaut Requete : parcourrir la tables entre deux dates

Bonjour,

J'ai une table reservation avec une date de debut et une date de fin pour chaque reservation.

J'aimerais, lors de la création d'une nouvelle reservation voir si la date est disponible.

exemple :
dans ma table : reservation prise du 02/05/2011 au 04/05/2011.
Je souhaite reserver du 01/05/2011 au 10/05/2011.

Comment savoir si les dates sont prise ?

J'ai trouver l'élément suivant comme requete :
select * from ma reservation where (#madate# BETWEEN Date_Debut And Date_Fin)

Mais cela ne fonctionne pas. Je suis en sql server 2000.


Merci.
slacky est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 12h22   #2
Membre Expert
 
Homme Etienne ZINZINDOHOUE
Ingénieur développement
Inscription : mars 2010
Messages : 1 139
Détails du profil
Informations personnelles :
Nom : Homme Etienne ZINZINDOHOUE
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Ingénieur développement
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2010
Messages : 1 139
Points : 2 467
Points : 2 467
Envoyer un message via Yahoo à zinzineti
Affiche la requête.

Je pense ceci devrait marcher

Code :
SELECT * FROM ma reservation WHERE tacolonnedate  BETWEEN 'Date_Debut' AND 'Date_Fin'
__________________
Etienne ZINZINDOHOUE
Billets-Articles
zinzineti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 13h49   #3
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Citation:
SELECT * FROM ma reservation WHERE tacolonnedate BETWEEN 'Date_Debut' AND 'Date_Fin'

Je pense que çà fonctionnera mieu si on ajoute des crochets au niveau du nom de la base car apparemment elle contient un espace (au passant c pas bien)

Code :
1
2
3
4
 
SELECT * 
FROM [ma reservation] 
WHERE taDate BETWEEN Date_Debut AND Date_Fin
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 13h59   #4
Futur Membre du Club
 
Homme Stéphane Bouvet
Chef de projet MOA
Inscription : mai 2011
Messages : 40
Détails du profil
Informations personnelles :
Nom : Homme Stéphane Bouvet
Âge : 35
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Chef de projet MOA
Secteur : Biens de consommation

Informations forums :
Inscription : mai 2011
Messages : 40
Points : 15
Points : 15
Bonjour,

Il y a plusieurs cas possibles :
- La réservation future empiète sur une réservation en cours
- La réservation future est incluse dans une réservation en cours
- La réservation future inclut une réservation en cours
En résumé :
Une nouvelle réservation ne doit pas commencer pendant une réservation existante
ou finir pendant une réservation existante
ou commencer avant une réservation existante et finir après

Si je comprends bien la table RESERVATION contient une colonne DATE_DEBUT et une colonne DATE_FIN ?

Une solution serait peut-être
Code :
1
2
3
4
5
6
 
SELECT *
FROM RESERVATION
WHERE (DATE_DEBUT < [DATE DEBUT RESERVATION] AND DATE_FIN > [DATE DEBUT RESERVATION)
OR (DATE_DEBUT < [DATE FIN RESERVATION] AND DATE_FIN > [DATE FIN RESERVATION)
OR (DATE_DEBUT > [DATE DEBUT RESERVATION] AND DATE_FIN < [DATE FIN RESERVATION)
Qu'en pensez-vous ?
darKStein est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 14h48   #5
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
SQL PRO a publié un excellent tuto à ce sujet:
http://sqlpro.developpez.com/cours/gestiontemps/
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 15h02   #6
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 668
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 668
Points : 8 718
Points : 8 718
Bonjour,

Plus exactement ici

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 15h27   #7
Futur Membre du Club
 
Homme Stéphane Bouvet
Chef de projet MOA
Inscription : mai 2011
Messages : 40
Détails du profil
Informations personnelles :
Nom : Homme Stéphane Bouvet
Âge : 35
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Chef de projet MOA
Secteur : Biens de consommation

Informations forums :
Inscription : mai 2011
Messages : 40
Points : 15
Points : 15
OVERLAPS est implémenté en SQL SERVER 2000 ? (Ca m'intéresserait mais je n'y crois pas trop )
darKStein est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 15h30   #8
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Citation:
OVERLAPS est implémenté en SQL SERVER 2000 ? (Ca m'intéresserait mais je n'y crois pas trop )
Ni en 2008, excusez moi ce n'est pas ce tuto que je voulais vous montrer de SQL PRO... je cherche et je reviens
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 18h25   #9
Rédacteur/Modérateur

 
Avatar de WOLO Laurent
 
Homme Laurent WOLO
Architecte de base de données
Inscription : mars 2003
Messages : 2 696
Détails du profil
Informations personnelles :
Nom : Homme Laurent WOLO
Âge : 35
Localisation : Congo-Brazzaville

Informations professionnelles :
Activité : Architecte de base de données
Secteur : Finance

Informations forums :
Inscription : mars 2003
Messages : 2 696
Points : 3 917
Points : 3 917
Envoyer un message via Yahoo à WOLO Laurent
Citation:
Envoyé par iberserk Voir le message
Je pense que çà fonctionnera mieu si on ajoute des crochets au niveau du nom de la base car apparemment elle contient un espace (au passant c pas bien)

Code :
1
2
3
4
 
SELECT * 
FROM [ma reservation] 
WHERE taDate BETWEEN Date_Debut AND Date_Fin
Il faut éviter de créer des identifiants avec des mots reservés, c'est la règle et elle devrait s'appliquer partout. Si vous avez le choix merci de corriger ce genre d'erreur.
__________________

Découvrez la FAQ de MS SQL Server.
La chance accorde ses faveurs aux esprits avertis !
WOLO Laurent est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 15h14   #10
Membre chevronné
 
Inscription : juillet 2006
Messages : 1 194
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 1 194
Points : 746
Points : 746
Une réservation ce serait plutôt 2 dates.
Une date de début (ex : @DateBegin) et une date de fin (ex : @DateEnd), non ?

Une requête pour trouver toutes les réservations qui chevaucheraient intervalle @DateBegin => @DateEnd

Code :
1
2
3
4
5
6
 
SELECT
*
FROM Booking
WHERE DateEnd > @DateBegin
AND DateBegin < @DateEnd
Sergejack est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h10.


 
 
 
 
Partenaires

Hébergement Web