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

 SGBD Discussion :

Système information de l'entreprise


Sujet :

SGBD

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2021
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2021
    Messages : 14
    Points : 17
    Points
    17
    Par défaut Système information de l'entreprise
    Bonjour à tous !

    Je suis actuellement en stage dans un pôle d'analyse de données d'une célèbre entreprise ferroviaire française.

    Je suis actuellement confronté à un problème de taille. J'étudie un passage critique de la ligne entre deux gares où le flux de train pour le nombre de voies est très important.

    J'ai donc une table avec comme champs : ('CODE_MISSION_TRAIN','DATE','HEURE ARRIVEE GARE X',' HEURE DEPART GARE X','RESPECT D'UN INDICATEUR Y',HEURE ARRIVEE GARE X+1'(prochaine gare)) que je récupère automatiquement à partir des balises d'enregistrement de l'entreprise + moulinette VBA.
    LA CLEF DE CETTE TABLE EST ('CODE_MISSION_TRAIN'+'DATE') -> clef composée


    A côté de cela, je récupère un fichier qui me donne pour ('CODE_MISSION_TRAIN','DATE/HEURE DEPART','GARE DEPART', 'DATE/HEURE ARRIVEE','GARE ARRIVEE', 'CODE JOURNEE CONDUCTEUR', 'NOM PRENOM CONDUCTEUR')
    LA CLEF DE CETTE TABLE EST EGALEMENT ('CODE_MISSION_TRAIN'+'DATE/HEURE DEPART') -> clef composée

    En gros j'aimerais créer un lien entre ces deux tables de façon à ce que si la date et le nom de mission correspondent alors on obtient le conducteur qui a conduit entre la gare X et X+1 (On rajoute un champ conducteur dans la première table)


    J'ai pensé à faire un algorithme qui pour chaque enregistrement de la première table parcourt tous les enregistrements de la seconde table jusqu'à trouver un enregistrement où le code mission et la date correspondent alors on écrit le nom du conducteur dans la première table mais deux problèmes se posent :
    _ Les fichiers sont des fichiers Excel et je déteste le VBA
    _ Vu la taille des bases de données et la complexité de l'algorithme, je ne pense pas que cela soit une solution envisageable

    Voyez-vous une solution en restant uniquement dans un système d'algèbre relationnel où est-on obligé de passer par un programme.


    Par avances merci!!!!

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 814
    Points
    17 814
    Par défaut
    En Excel c'est un "bête" RECHERCHEV, pas besoin de VBA.

    Sinon téléversez vos deux fichiers Excel dans une base de données, et ça devient une simple opération de jointure.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2021
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2021
    Messages : 14
    Points : 17
    Points
    17
    Par défaut
    D'accord merci pour votre réponse, effectivement j'avais oublié RECHERCHE V !!

    Mais au niveau de la jointure, il faudrait faire une jointure(1,1) entre deux champs 'DATE' et 'CODE_MISSION' de la 1 avec 'DATE' et 'CODE_MISSION' de la table 2 ce qui je crois n'est pas possible car si je fait une jointure au niveau des date, j'obtiens une jointure (n,n) qui n'est pas exploitable pour trouver le nom du conducteur qui conduisait dans la partie critique. Si je réalise une jointure entre CODE_MISSION , j'obtiens également une jointure plusieurs à plusieurs inexploitable.

    Je me suis peut être mal exprimé mais en gros un CODE_MISSION peut être réalisé à plusieurs date avec à chaque fois un conducteur différent. Seul le combo 'DATE'+'CODE_MISSION' permet d'avoir un conducteur unique.

    Encore merci pour votre réponse !!

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2021
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2021
    Messages : 14
    Points : 17
    Points
    17
    Par défaut
    Pareil pour la recherche vertical en fait, il faudrait que la formule soit capable d'accepter deux valeurs à rechercher 'DATE' et 'CODE_MISSION' pour marcher et c'est uniquement dans ce cas là qu'elle me renverrait le nom du conducteur. Malheureusement une tel formule n'existe pas.

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 814
    Points
    17 814
    Par défaut
    Citation Envoyé par antoineplanche Voir le message
    Je me suis peut être mal exprimé mais en gros un CODE_MISSION peut être réalisé à plusieurs date avec à chaque fois un conducteur différent. Seul le combo 'DATE'+'CODE_MISSION' permet d'avoir un conducteur unique.
    Il n'y a aucun problème à faire une jointure sur plusieurs critères :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select table1.*
         , table2.conducteur
      from table1
      join table2  on table2.CODE_MISSION = table1.CODE_MISSION
                  and table2.DATE         = table1.DATE;

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2021
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2021
    Messages : 14
    Points : 17
    Points
    17
    Par défaut
    Ok merci beaucoup, powerBI ne permettait pas de faire la jointure sur plusieurs champs j'ai donc finit par créer une colonne ou j'ai fusionné la date et le code de mission.

    Encore merci pour votre aide

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

Discussions similaires

  1. Google lance un coffre-fort pour les informations critiques des entreprises
    Par Gordon Fowler dans le forum Cloud Computing
    Réponses: 5
    Dernier message: 06/04/2012, 12h49
  2. Création d'un système intranet pour une entreprise
    Par sarl-78 dans le forum Windows
    Réponses: 5
    Dernier message: 04/11/2011, 00h56
  3. [Système] Informations systèmes d'un ordinateur client
    Par the_real_tonton dans le forum Langage
    Réponses: 9
    Dernier message: 30/03/2007, 02h10
  4. [Système] Informations system pc
    Par Belfils dans le forum Langage
    Réponses: 3
    Dernier message: 23/02/2007, 12h29

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