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 MySQL Discussion :

[MySQL 5.5] Requete pour des intervalles de dates


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 80
    Points : 59
    Points
    59
    Par défaut [MySQL 5.5] Requete pour des intervalles de dates
    Bonjour à tous,
    Dans une table "voyage", je dispose pour chaque entrée d'un label de voyage, d'une datetime de debut de voyage ( 20090301 14:00:00) et d'une datetime de fin de voyage ( 20090321 10:00:00).
    Cette table est remplie pour une année complete avec differentes periodes de voyages.
    Je souhaiterais avoir toutes les périodes qui ne correspondent à aucun voyage avec un tableau en resultat qui donne chaque datetime_debut et datetime_fin où il n'y a aucun voyage d'inscrit.
    Merci de votre aide

  2. #2
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    Cela semble assez complexe pour qu'on prenne le temps de bien expliciter la problématique.
    Cette table est remplie pour une année complète avec différentes périodes de voyages.
    Que veux-tu dire par remplie pour une année complète ?
    Si l'année est complète, où faut-il chercher des périodes qui ne correspondent à aucun voyage ?
    Certaines périodes de voyages peuvent-elles se chevaucher ?
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 80
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par Maljuna Kris Voir le message
    Que veux-tu dire par remplie pour une année complète ?
    La période des données s'etend sur une année , mais ca n'a pas d'importance pour le traitement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Certaines périodes de voyages peuvent-elles se chevaucher ?
    Non aucune période ne peut se chevaucher.

    Pour donner un exemple assez simple :

    Pour l'année 2008 par exemple :
    - Du 1 avril au 30 mai : voyage à Paris ( BDD : datedebut : 2009-04-01 08:00:00 -> et datefin 2009-05-30 10:00:00 )
    - Du 15 juin au 15 juillet : voyage à Londres
    - Du 15 septembre au 30 octobre : voyage à Barcelone.

    Je cherche ainsi à avoir toutes les periodes sans voyage donc du 1 janvier au 1 avril exclu, du 31 mai au 14 juin, du 16 juillet au 14 septembre et du 31 octobre au 31 decembre.

    Merci beaucoup

  4. #4
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Le seul début de solution que j'entrevois nécessite de se créer une table calendrier qui contienne juste la date de chacun des jours de l'année considérée (petite table de 366 lignes au maximum avec une seule colonne `jour` de type DATE).
    Ensuite, je vois bien comment une requête pourrait nous retourner tous les jours de ce calendrier qui ne sont compris dans aucune des périodes de la table voyage, même s'il faudrait affiner pour tenir compte des heures dans la table voyage
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT jour
    FROM calendrier C
    LEFT JOIN voyage v ON jour 
    BETWEEN v.debut
    AND v.fin
    WHERE v.debut IS NULL
    ORDER BY jour
    Par contre, je n'ai pas encore trouvé l'astuce qui permette de réduire la liste ainsi obtenue en périodes début-fin.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

Discussions similaires

  1. Réponses: 6
    Dernier message: 01/06/2015, 20h46
  2. Recherche Pour Un Intervalle De Date
    Par ingui dans le forum Access
    Réponses: 1
    Dernier message: 29/01/2007, 18h26
  3. Réponses: 6
    Dernier message: 12/01/2007, 21h34
  4. [MySQL] Recherche de requête pour creation d'un agenda
    Par lelectronique.com dans le forum Langage SQL
    Réponses: 6
    Dernier message: 30/10/2006, 10h12
  5. MYSQL - requete avec un intervale de DATE
    Par mastronic dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/08/2006, 16h25

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