IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

Comment rechercher si une période est comprise dans une autre ? [AC-2010]


Sujet :

Requêtes et SQL.

  1. #1
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Points : 381
    Points
    381
    Par défaut Comment rechercher si une période est comprise dans une autre ?
    Bonjour,

    J'ai une table qui contient des suspensions dont la structure est la suivante :

    Table : SUSPENSIONS
    - Matricule
    - DateDebut
    - DateFin

    Je voudrais récupérer la liste des "Matricule" qui ont une période de suspension (DateDebut et DateFin) qui est en 2013.

    - La période de suspension peut avoir commencée avant 2013 et se terminer après 2013
    - La période de suspension peut avoir commencée avant 2013 et se terminer en 2013
    - La période de suspension peut avoir commencée en 2013 et se terminer après 2013
    - La période de suspension peut avoir commencée en 2013 et se terminer en 2013

    Comment puis-je faire ?

    Merci,
    ZiP

  2. #2
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    Zip,

    Un petit tour sur un problème proche du tien, à la différence que dans son cas il saisi deux dates sur son formulaire et vérifie dans la table le chevauchement pour dire si un véhicule est disponible ou non.

    Tu n'auras qu'à adapter la requête

    http://www.developpez.net/forums/d14...-meme-periode/

    JimBoLion

  3. #3
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Points : 381
    Points
    381
    Par défaut
    Bonjour jimbolion,

    J'ai essayé de préciser un peu plus ce que je souhaite faire dans mon premier message.

    Merci,
    ZiP

  4. #4
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    ZiP,

    A part le nom des tables et des champs, c'est donc point pour point le même énoncé.

    JimBoLion

  5. #5
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Points : 381
    Points
    381
    Par défaut
    Merci !

  6. #6
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Points : 381
    Points
    381
    Par défaut
    Bonjour jimbolion,

    Je viens de tester, ça ne semble pas fonctionner.

    En effet, j'ai modifié pour le véhicule 102, le créneau de réservation : 06/12/2012 au 06/12/2014

    Lorsque j'effectue une réservation du 01/01/2013 au 31/12/2013, celui-ci est affiché disponible !

    Cordialement,
    ZiP

  7. #7
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    ZiP,

    oups je regarde je vérifie car il y a plusieurs adaptations de la version !

  8. #8
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    ZiP,

    Vérifie mais çà doit être mieux

    JimboLion
    Fichiers attachés Fichiers attachés

  9. #9
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Points : 381
    Points
    381
    Par défaut
    Je n'ai testé que la version 2 pour le moment.

    La version 1 semble fonctionner.

    Par contre, je ne trouve pas à quoi correspond le champ
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Forms]![F_Res]![Date_Res_T]
    qui est dans la requête dans la partie Critères.

    Je retrouve bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Forms]![F_Res]![Date_Res_D]
    , mais pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Forms]![F_Res]![Date_Res_T]
    .

    Pouvez-vous m'aider à trouver la correspondance ?

    Merci,
    ZiP

  10. #10
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    Zip,

    Exact

    à remplacer par Date_Res_F

    Je n'avais pas conserver la dernière mouture donc j'ai refait un peu vite j'en conjures !

    Donc dans l'idée si la date de début réservation est comprise dans l'intervalle de début et fin demandé ou que la date de fin de réservation est comprise dans l'intervalle de début et fin demandé on considère que le véhicule n'est pas disponible (d'ou le beetween dans la requête).

    Il n'y a que quelques tests à faire pour valider en jouant uniquement sur les dates souhaitées (hors et dans l'intervalle de réservation pur chacune des dates début et fin)


    JimBoLion

  11. #11
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Points : 381
    Points
    381
    Par défaut
    Je valide tout ça dans la soirée après avoir tester différents types de dates.

    Merci,
    ZiP

  12. #12
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Points : 381
    Points
    381
    Par défaut
    Bonjour,

    J'ai fait quelques tests, ça ne semble pas fonctionner dans tous les cas.

    Par exemple, lorsque la date de réservation est plus large qu'une réservation déjà existante :

    Nom : Sans titre.png
Affichages : 257
Taille : 21,9 Ko

    Merci pour votre aide,
    ZiP

  13. #13
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    Zip,

    on y arrive donc la requête mode SQL

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT T_res.DateDep, T_res.DateRet, T_res.No_Vehicule, Format([Formulaires]![F_Res]![Date_Res_D],"dd/mm/yyyy") AS D_D, Format([Formulaires]![F_Res]![Date_Res_F],"dd/mm/yyyy") AS D_F
    FROM T_res
    WHERE (((T_res.DateDep) Between Format([Formulaires]![F_Res]![Date_Res_D],"dd/mm/yyyy") And Format([Formulaires]![F_Res]![Date_Res_F],"dd/mm/yyyy")) AND ((T_res.No_Vehicule)=[Formulaires]![F_Res]![No_Vehicule])) OR (((T_res.DateRet) Between Format([Formulaires]![F_Res]![Date_Res_D],"dd/mm/yyyy") And Format([Formulaires]![F_Res]![Date_Res_F],"dd/mm/yyyy")) AND ((T_res.No_Vehicule)=[Formulaires]![F_Res]![No_Vehicule]));
    Les cas suivants (exhausitivité des cas) traités Les deux derniers visent à contrôler que la comparaison prends en compte le égal

    Test : sur 1 vehicule (103)

    Date_Dep Date_Fin attendu Résultat
    06/12/2012 06/12/2014

    06/01/2011 06/12/2016 Non Disponible ok
    07/03/2012 06/12/2016 Non Disponible ok
    07/03/2012 05/04/2014 Non Disponible ok
    06/01/2011 05/04/2014 Non Disponible ok
    06/01/2011 22/11/2012 Disponible ok
    07/12/2014 06/12/2016 Disponible ok
    06/12/2012 06/12/2012 Non Disponible ok
    06/12/2014 06/12/2014 Non Disponible ok

    JimBoLion

  14. #14
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Points : 381
    Points
    381
    Par défaut
    Bonjour jimbolion,

    Votre exemple fonctionne, j'ai par conséquent essayé de l'appliquer à ma situation de cette manière :

    Nom : DCjkOdLhUZQ_sans_titre.png
Affichages : 221
Taille : 6,7 Ko

    Cependant, lorsque je lance a requête, j'ai l'erreur suivante :

    Nom : DCjkQU1HGrN_sans_titre2.png
Affichages : 245
Taille : 13,1 Ko

    Pouvez-vous m'aider à corriger ce problème ?

    Merci,
    ZiP

  15. #15
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    Zip,

    Les dates doivent s'écrire #01/01/2012#

    Autre remarque et conformément à mon exemple il va falloir inscrire sur 2 lignes différentes tes deux comparaisons de dates

    la date de debut est comprise entre .. et .. avec le vehicule

    ou

    la date de fin est comprise entre .. et .. avec le vehicule


    Dans ton cas tu appliques la règle suivante

    la date de debut est comprise entre .. et .. avec le vehicule

    et

    la date de fin est comprise entre .. et .. avec le vehicule

    Ton exemple n'est valable que dans le cas ou ta saisie est bornée par l'intervalle or la date de début ou de fin (voire les deux peuvent être en dehors de l'intervalle), et ce n'est pas pour cela que le véhicule est disponible !

    JimBoLion

  16. #16
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Points : 381
    Points
    381
    Par défaut
    Bonjour,

    J'avais trouvé entre temps comment utiliser les dates avec Access

    J'ai fait le code suivant qu'il faut que je teste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT SituationPaie.[Code Agent], SituationPaie.Motif, SituationPaie.[Date d'effet], SituationPaie.[Date de fin de situation]
    FROM SituationPaie
    WHERE (((SituationPaie.Motif)="SUS") AND ((SituationPaie.[Date d'effet]) Between #1/1/2013# And #12/31/2013#)) OR (((SituationPaie.Motif)="SUS") AND ((SituationPaie.[Date de fin de situation]) Between #1/1/2013# And #12/31/2013#));
    Je pense que ça colle avec ce que je veux.

    Merci,
    ZiP

  17. #17
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    ZiP,

    Oui c'est cohérent.

    La requête a été construite par Code ou directement dans l'assistant requête ? La date devra à terme être passée par paramètre.

    JimBoLion

  18. #18
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Points : 381
    Points
    381
    Par défaut
    jimbolion,

    Je l'ai réalisée par l'assistant requête (mode création).

    Merci,
    ZiP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/12/2010, 21h20
  2. [String] Recherche si un mot est contenu dans une phrase
    Par Marvelll dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 05/02/2010, 10h19
  3. [WS 2003] comment savoir si un serveur est intégré dans une AD
    Par sparowme dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 28/08/2009, 09h38
  4. Verifier qu'une valeur est comprise dans un intervalle
    Par wizo_nac dans le forum Prolog
    Réponses: 7
    Dernier message: 23/06/2009, 18h36
  5. Réponses: 2
    Dernier message: 13/08/2006, 23h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo