Requete SQL sur une période de dates

Le
wd_newbie
Bonjour,

j'ai un petit problème à résoudre en SQL et les résultats me semble=
nt
bizarres mais c'est surement moi qui débloque :

Soit une table pardon , un fichier avec des vacances avec comme
unique inscription :
//*****************************
Nom : Vacances de Noel
Début : 24.12.2010
Fin : 07.01.2011
//--

Je veux contrôler que je ne mets pas une autre période sur celle-ci,
et pour ce faire je recherche toutes les périodes déjà inscrites qui
chevaucheraient celle que j'essaie d'enregistrer :

SELECT
Vacances.Vacances_ID AS Vacances_ID,
Vacances.Vacances_Debut AS Vacances_Debut,
Vacances.Vacances_Fin AS Vacances_Fin
FROM
Vacances
WHERE
(Vacances.Vacances_Debut BETWEEN {n1} AND {n2})
OR (Vacances.Vacances_Fin BETWEEN {n1} AND {n2})


Pour n1 et n2 : 15.12.2010 et 30.12.2010 ==> OK me renvoie une
période

Pour n1 et n2 : 30.12.2010 et 17.01.2011 ==> OK me renvoie aucune
période !!

Pourtant le 07.01.2011 est bien compris entre 30.12.2010 et
17.01.2011.

la condition Vacances_Fin (soit 07.01.11 pour l'unique enregistrement)
et bien comprise entre les deux valeurs de la nouvelle période

J'en perds le peu de SQL qui me reste :-(

Si vous avez une idée sur ce truc qui débloque ?

merci d'avance de me lire et bon week-end !


Olivier
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
wd_newbie
Le #22856401
On 27 nov, 13:56, wd_newbie
Bonjour,

j'ai un petit problème à résoudre en SQL et les résultats me semb lent
bizarres ... mais c'est surement moi qui débloque :

Soit une table ... pardon , un fichier avec des vacances avec comme
unique inscription :
//*****************************
Nom : Vacances de Noel
Début  : 24.12.2010
Fin : 07.01.2011
//-----------------------------------

Je veux contrôler que je ne mets pas une autre période sur celle-ci,
et pour ce faire je recherche toutes les périodes déjà inscrites qu i
chevaucheraient celle que j'essaie d'enregistrer :

SELECT
        Vacances.Vacances_ID AS Vacances_ID,
        Vacances.Vacances_Debut AS Vacances_Debut,
        Vacances.Vacances_Fin AS Vacances_Fin
FROM
        Vacances
WHERE
        (Vacances.Vacances_Debut BETWEEN {n1} AND {n2})
        OR      (Vacances.Vacances_Fin BETWEEN {n1} AND {n2 })

Pour n1 et n2 : 15.12.2010 et 30.12.2010 ==> OK me renvoie une
période

Pour n1 et n2 : 30.12.2010 et 17.01.2011 ==> OK me renvoie aucune
période !!

Pourtant le 07.01.2011  est bien compris entre 30.12.2010 et
17.01.2011.

la condition Vacances_Fin (soit 07.01.11 pour l'unique enregistrement)
et bien comprise entre les deux valeurs de la nouvelle période ...

J'en perds le peu de SQL qui me reste :-(

Si vous avez une idée sur ce truc qui débloque ?

merci d'avance de me lire et bon week-end !

Olivier



Laissez tomber ... j'avais les bonnes requêtes, mais c'est les données
qui étaient mauvaises ...

Ou comment perdre une demi-journée pour des c....

:-(

Bon week-end a tous


Olivier
Publicité
Poster une réponse
Anonyme