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 :

Alimentation tables complexe ? Date.


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    20
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 20
    Points : 23
    Points
    23
    Par défaut Alimentation tables complexe ? Date.
    Bonjour,

    J'ai un problème pour alimenter deux tables, à partir d'une autre.

    Ma table source complètement indépendante, à partir de laquelle je travail :

    source
    --------
    chauffeur_id (int) (clé primaire)
    date_heure (datetime) (clé primaire)
    ...

    Exemple :
    6 - 2006-11-15 13:36:35
    6 - 2006-11-15 20:14:22
    6 - 2006-11-17 06:11:27
    7 - 2006-11-22 11:19:48
    ...


    Les tables que je veux alimenter :

    fr_feuille
    ------
    fr_f_id (int) (clé primaire)
    fr_f_semaine_deb (date)
    fr_f_semaine_fin (date)
    ...

    Exemple:
    11 - 2008-05-19 - 2008-05-25 - ...

    fr_jour
    -------
    fr_j_feuille_id (int) (clé primaire) (clé étrangère fr_feuille)
    fr_j_date (date) (clé primaire)
    etc....

    Exemple:
    11 - 2008-05-20 - ...

    Donc dans fr_feuille, pour chaque feuille j'ai la date du premier et du dernier jour d'une semaine. Le lundi et le Dimanche.

    Dans fr_jour, j'ai donc des informations pour chaque jour (fr_j_date) concernant une feuille (fr_j_feuille_id). Donc fr_j_date est une date entre fr_f_semaine_deb et fr_f_semaine_fin de la feuille concernée.



    Voilà à partir de la table source, je souhaite remplir les 2 autres tables.
    Donc pour chaque Date, il faudrait créer une feuille avec la semaine concernée, et insérer ensuite tous les jours de cette semaine dans la table fr_jour.

    Est-ce que c'est possible entièrement en SQL, ou est-ce qu'il faut utiliser aussi PHP pour faire ça ?
    Qu'elles sont les étapes ?

    Merci

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Bonjour,

    Bien sûr que c'est faisable en SQL .
    Je ne dis pas que ça sera simple, mais c'est faisable.
    Je vois deux étapes :
    1/ pour tous les jours distincts de la table source, il faut insérer une semaine. La difficulté repose sur comment trouver le premier et le dernier jour de chaque semaine (il va sûrement falloir jouer avec date_add et le numéro du jour dans la semaine, qu'on obtient par DATE_FORMAT(la_date, '%w')) ;
    2/ Pour toutes les feuilles et semaines concernées, il faut ensuite insérer chaque jours de la semaine. Là, la difficulté repose sur insérer 7 valeurs à partir de 2 dates. Il faudra sûrement s'appuyer sur une table temporaire pivot (avec 7 entiers consécutifs), encore que, comme il n'y a que 7 jours, c'est peut-être faisable sans passer par ce biais.

    Dans tous les cas, utilise la syntaxe INSERT... INTO... SELECT...
    Comme ça, tu testes ton SELECT et quand il est bon, tu insères...

    Bon courage ,

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre à l'essai
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    20
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 20
    Points : 23
    Points
    23
    Par défaut
    Merci pour ton aide.
    Je suis en train de m'en sortir, notamment grâce à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DATE_ADD(CURRENT_DATE, INTERVAL(- WEEKDAY(CURRENT_DATE)) DAY);
    Qui donne la date du lundi de la semaine d'une date (Pas très clair )

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

Discussions similaires

  1. Alimenter table à partir de date
    Par lelockjohn dans le forum Access
    Réponses: 13
    Dernier message: 07/01/2015, 10h47
  2. Requete complexe sur 2 tables avec dates
    Par fusee2013 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/08/2013, 19h56
  3. Requête 2 tables avec dates
    Par Flam dans le forum Requêtes
    Réponses: 11
    Dernier message: 22/06/2006, 09h42
  4. Plusieurs jointures sur la meme table [complexe]
    Par Wells dans le forum Requêtes
    Réponses: 2
    Dernier message: 06/06/2006, 11h41
  5. [SGBD] [MySQL] Meise à jour table + réafficher + date
    Par philippef dans le forum Requêtes
    Réponses: 6
    Dernier message: 14/01/2006, 18h34

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