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

Deski Discussion :

[BO XI R2] Merger/Joindre les données d'un fichier avec celle d'un univers [Fait]


Sujet :

Deski

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

    Informations forums :
    Inscription : Décembre 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut [BO XI R2] Merger/Joindre les données d'un fichier avec celle d'un univers
    Bonjour,

    J'ai des difficultés sur la création d'un rapport dans BO qui s'appuie d'une part sur un univers et d'autre part sur un fichier de données.

    Le but est de "filtrer" les données de l'univers avec celle d'un fichier de donnée pour vérifier des données.

    Le fournisseur de donnée basé sur l'univers ramène les données suivantes :
    ID_PERSONNE NOM PRENOM

    Par ailleurs, j'ai un fichier contenant une liste de nom et de prénom
    FIC_NOM FIC_PRENOM

    Donc, j'essaie de construire plusieurs tableaux pour récupérer :
    la liste des personnes dont le nom et le prénom sont trouvés dans l'univers
    la liste des personnes dont le nom est trouvé dans l'univers mais pas le prénom
    la liste des personnes dont le nom n'est pas trouvé dans l'univers.

    J'ai fait plusieurs tests en liant les dimensions de mon fichier et celle de mon univers, mais j'obtiens des résultats incohérents.

    Par exemple, si dans l'univers , j'ai les données suivantes:

    ID_PERSONNE NOM PRENOM
    IDA NOMA PRENOMA
    IDB NOMB PRENOMB
    IDC NOMC PRENOMC
    IDD NOMD PRENOMD
    IDE NOME PRENOME
    IDF NOMF PRENOMF

    Dans le fichier, les données suivantes :
    FIC_NOM FIC_PRENOM
    NOMA PRENOMA
    NOMB PRENOMB

    J'obtiens dans le report les données suivantes :

    ID_PERSONNE NOM PRENOM FIC_NOM FIC_PRENOM
    IDA NOMA PRENOMA NOMA PRENOMA
    IDB NOMB PRENOMB NOMB PRENOMA
    IDC NOMC PRENOMC NOMC PRENOMA
    IDD NOMD PRENOMD NOMD PRENOMA
    IDE NOME PRENOME NOME PRENOMA
    IDF NOMF PRENOMF NOMF PRENOMA

    Ce qui est complètement incohérent. Puisque FIC_NOM et FIC_PRENOM prennent des valeurs qui n'existent pourtant pas dans le fichier.*

    Moi j'attendais plutôt
    ID_PERSONNE NOM PRENOM FIC_NOM FIC_PRENOM
    IDA NOMA PRENOMA NOMA PRENOMA
    IDB NOMB PRENOMB NOMB PRENOMA

    ou au pire
    ID_PERSONNE NOM PRENOM FIC_NOM FIC_PRENOM
    IDA NOMA PRENOMA NOMA PRENOMA
    IDB NOMB PRENOMB NOMB PRENOMA
    IDC NOMC PRENOMC
    IDD NOMD PRENOMD
    IDE NOME PRENOME
    IDF NOMF PRENOMF


    On dirait que par défaut, il fait une espèce de fusion de données, alors que j'aimerais plutôt faire une jointure externe.

    Cela est-il possible.
    Merci de votre aide.
    N'hésitez pas à m'indiquer si je n'ai pas été clair.

  2. #2
    Membre expérimenté
    Avatar de Julien59
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    1 142
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 142
    Points : 1 458
    Points
    1 458
    Par défaut
    De souvenir...

    Je dirai que lorsque tu fais un merge de dimension il fait un union.

    Dans ton tableau, tu mets les colonnes issues du fichier et de l'univers. Si tu lies les dimensions nom et prénom dans le fournisseur de données, tu peux te contenter des colonnes issues seulement de ton fichier externe!

    Je ne sais pas si ca va donner le bon résultat. Ton tableau comprendrait les dimensions suivantes :

    ID_PERSONNE FIC_NOM FIC_PRENOM

    Peux tu essayer et me retourner le résultat ?
    • Pensez à consulter la FAQ BO
    • Quand votre problème est solutionné, n'oubliez pas de cliquer sur le bouton

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

    Informations forums :
    Inscription : Décembre 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Merci de ta réponse.

    Cela donne
    ID_PERSONNE FIC_NOM FIC_PRENOM
    IDA NOMA PRENOMA
    IDB NOMB PRENOMB
    IDC NOMC PRENOMC
    IDD NOMD PRENOMD
    IDE NOME PRENOME
    IDF NOMF PRENOMF

    Mais la colonne ID_PERSONNE provient de l'univers donc du coup, il applique l'union.

  4. #4
    Rédacteur
    Avatar de Bruno2r
    Homme Profil pro
    Exploitation des données
    Inscrit en
    Décembre 2006
    Messages
    2 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Exploitation des données
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 566
    Points : 4 780
    Points
    4 780
    Par défaut
    Bonjour,
    Je vous propose de lire cette question de la FAQ BO :
    Comment n'afficher que les lignes communes des requêtes synchronisées ?

    Autre méthode dans l'Editeur de Requête
    1) Pour se limiter aux personnes communes aux deux listes

    Faire une requête supplémentaire dans laquelle on pose la double condition

    • Dimension FIC_NOM
    • Opérateur DansListe
    • Opérande Sélectionner les résultats de la requête
    • Choisir la requête pointant sur la feuille Excel
    • Choisir la Dimension équivalente (ici NOM)

    ET

    • Dimension FIC_PRENOM
    • Opérateur DansListe
    • Opérande Sélectionner les résultats de la requête
    • Choisir la requête pointant sur la feuille Excel
    • Choisir la Dimension équivalente (ici PRENOM)

    2) Pour trouver les personnes absentes de la feuille Excel
    Faire une requête supplémentaire dans laquelle on pose la double condition

    • Dimension FIC_NOM
    • Opérateur PasDansListe
    • Opérande Sélectionner les résultats de la requête
    • Choisir la requête pointant sur la feuille Excel
    • Choisir la Dimension équivalente (ici NOM)

    OU

    • Dimension FIC_PRENOM
    • Opérateur DansListe
    • Opérande Sélectionner les résultats de la requête
    • Choisir la requête pointant sur la feuille Excel
    • Choisir la Dimension équivalente (ici PRENOM)

    A vérifier car n'ayant pas BO sous la main je fais ça de tête

    IMPORTANT :
    Quand on veut faire ce genre de contrôle sur les identités de personnes il faut

    • soit renseigner les ID dans la feuille Excel
    • soit concaténer dans cette feuille NOM-PRENOM (sachant que la date de naissance ne serait pas un luxe) et disposer du même objet dans l'autre requête ou à défaut le créer comme objet personnel)

    et faire porter le contrôle proposé dans les requêtes ci dessus sur cet identifiant unique.
    Précisez la VERSION !
    Un message vous a aidé ? Votez en cliquant sur Pensez au bouton
    Tutoriels BO et FAQ BO
    "A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Bonsoir,

    Tout d'abord, merci de m'avoir répondu.

    J'avais jeté un coup d'oeil à ce qui était dans la FAQ, mais cela à priori ne correspondait pas tout à fait à ce que je voulais.

    Mes contraintes sont les suivantes :
    Je n'ai pas le choix sur le format du fichier Excel. J'ai forcement deux colonnes (Noms et Prénoms)
    Par ailleurs, tous les enregistrements de la feuille Excel doivent être présents dans mon report.

    Je m'en suis finalement sorti de la façon suivante.

    Fournisseurs de données :
    Requête sur l'univers avec ID, Nom, Prénom
    Fichier Excel avec Nom Prénom
    Fournisseur de donnée VB : En VB, je créé trois colonnes, une colonne Nom qui contient le contenu de la colonne Nom du fichier Excel, une deuxième colonne Prénom (même principe) et une troisième colonne dont je valorise le contenu avec un flag.

    Enfin, il me reste à lier les données de l'univers et celle du Fournisseur de données VB sur le nom prénom et de filtrer le report résultant (ID, Nom, Prénom) sur la colonne contenant le Flag.
    Et le tour est joué

    Espérant avoir été clair ...

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

Discussions similaires

  1. [MySQL] Comparer les données d'un formulaire avec celle d'une BDD
    Par roms95200 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 10/04/2015, 00h02
  2. [MySQL] Importer les données d'un fichier CSV dans une base de données
    Par joueur dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 12/11/2008, 11h59
  3. [VB 6.3] Traiter les données d'un fichier
    Par yaya54 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 21/02/2006, 14h00
  4. [](VB) Récupérer les données dans un fichier .xml
    Par Furius dans le forum VBScript
    Réponses: 4
    Dernier message: 02/10/2005, 20h39
  5. [JTable] Comment récuperer les données d'un fichier texte ?
    Par Makunouchi dans le forum Composants
    Réponses: 2
    Dernier message: 03/05/2005, 16h37

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