Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Requete SQL sur une période de dates

1 réponse
Avatar
wd_newbie
Bonjour,

j'ai un petit probl=E8me =E0 r=E9soudre en SQL et les r=E9sultats me semble=
nt
bizarres ... mais c'est surement moi qui d=E9bloque :

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

Je veux contr=F4ler que je ne mets pas une autre p=E9riode sur celle-ci,
et pour ce faire je recherche toutes les p=E9riodes d=E9j=E0 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 =3D=3D> OK me renvoie une
p=E9riode

Pour n1 et n2 : 30.12.2010 et 17.01.2011 =3D=3D> OK me renvoie aucune
p=E9riode !!

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=E9riode ...

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

Si vous avez une id=E9e sur ce truc qui d=E9bloque ?

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


Olivier

1 réponse

Avatar
wd_newbie
On 27 nov, 13:56, wd_newbie wrote:
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