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 :

Incompatibilité de variables issues de 2 requêtes


Sujet :

Deski

  1. #1
    Membre habitué Avatar de schkrumble
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Points : 130
    Points
    130
    Par défaut Incompatibilité de variables issues de 2 requêtes
    Bonjour,

    Je cherche à créer une requête me permettant d'identifier les incohérences entre deux bases de données.
    Pour faire simple, j'ai des projets, enregistrés dans une base, auxquels on a affecté des codes analytiques, et que l'on a exportés dans une seconde base, mais il a pu arriver que des modifications aient été apportées à certains codes analytiques APRES l'export. Je veux identifier ces cas.

    Voici comment je m'y suis pris :
    1. Je crée une première requête sur un premier univers (correspondant à ma première base de donnée) et je ramène 2 champs :
      ID_Projet1 ; Code_Analytique1
    2. Je crée une deuxième requête sur un deuxième univers et je ramène 2 champs :
      ID_Projet2 ; Code_Analytique2
    3. Je crée un objet de type information Info_Code_Analytique1 =<Code_Analytique1> et lié à la dimensions ID_Projet1.
    4. Je crée un objet de type information Info_Code_Analytique2=<Code_Analytique2> et lié à la dimensions ID_Projet2.
    5. Je lie les dimensions ID_Projet1 et ID_Projet2.
    6. Je crée un tableau unique avec trois colonnes :
      ID_Projet1 ; Info_Code_Analytique1 ; Info_Code_Analytique2

    Jusque là ça marche. J'ai un joli tableau avec plein de lignes et je peux constater qu'il y a quelques lignes où mes codes analytique diffèrent.
    La seconde étape consiste à filtrer les seules lignes où il y a des incohérences, c'est là que je flanche :

    Lorsque j'essaie une formule
    = Si (<Info_Code_Analytique1>=<Info_Code_Analytique2>) Alors "OK" Sinon "Erreur"
    BO me renvoie ce message d'erreur :
    Les variables utilisées dans la formules ne sont pas compatibles. (DMB0008)

    Quelqu'un a une idée ?

  2. #2
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    Bonjour,

    Ce n'est pas évident, car la technique de passer par des objets de type information est en fait une parade pour contourner ce message d'erreur justement...

    Il est possible que lors d'une opération sur ces éléments BO retourne au niveau le plus haut, à savoir les dimensions, et que par conséquent l'erreur est retournée.

    Néanmoins, ce que tu peux tester, c'est de laisser l'un des deux libellés en dimension (il n'est d'ailleurs pas nécessaire que les deux soient en information pour que ça fonctionne) pour effectuer ta comparaison... Mais c'est sans garantie.

    Une toute autre solution pourrait consister à utiliser l'opérande "utiliser les résultats d'une autre requête" pour identifier tes différences.

    Par exemple, si tu veux repérer les noms qui sont différents dans ta requête 2, il te suffit de créer ta requête 2 de la façon suivante :

    Objets du résultat :
    ID, Nom, etc...
    Conditions :
    Nom Pas Dans Liste ---> Requête 1 . Nom

    Ceci, bien sûr, à condition que la requête 1 ne ramène pas plus de 1000 résultats.
    Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
    Un message vous a aidé ? Votez en cliquant sur
    Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton

  3. #3
    Membre habitué Avatar de schkrumble
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Points : 130
    Points
    130
    Par défaut
    Citation Envoyé par TomDuBouchon Voir le message
    Bonjour,
    ce que tu peux tester, c'est de laisser l'un des deux libellés en dimension (il n'est d'ailleurs pas nécessaire que les deux soient en information pour que ça fonctionne) pour effectuer ta comparaison... Mais c'est sans garantie.
    j''avais testé : échec
    Citation Envoyé par TomDuBouchon Voir le message
    Une toute autre solution pourrait consister à utiliser l'opérande "utiliser les résultats d'une autre requête" pour identifier tes différences.

    Par exemple, si tu veux repérer les noms qui sont différents dans ta requête 2, il te suffit de créer ta requête 2 de la façon suivante :

    Objets du résultat :
    ID, Nom, etc...
    Conditions :
    Nom Pas Dans Liste ---> Requête 1 . Nom

    Ceci, bien sûr, à condition que la requête 1 ne ramène pas plus de 1000 résultats.
    Cette solution supposerait aussi que mes deux requête tapent sur le même univers, non ?

  4. #4
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    Non, pas nécessairement
    Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
    Un message vous a aidé ? Votez en cliquant sur
    Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton

  5. #5
    Membre habitué Avatar de schkrumble
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Points : 130
    Points
    130
    Par défaut

    peux-tu décrire la manip ? parceque là je ne vois pas trop comment on peut faire...

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Avril 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 35
    Points : 31
    Points
    31
    Par défaut
    Salut,

    Alors c'est un peu de la bidouille, mais effectivement lorsque tu travailles sur des dimensions (ou informations) de requêtes différentes, ce message apparaît.

    Est-ce que tu peux essayer la formule suivante (ou la variable) :
    =Comparer(Max.(<Info_Compte_1>) ,Max.(<Info_Compte_2>))

    En la déclarant comme indicateur ?

    Ensuite tu devrais pouvoir faire un alerteur ou un filtre sur la valeur 0 retournée par ta variable ....

  7. #7
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    En fait, il n'y a pas de manipulation particulière...
    Lorsque tu saisis ta condition "Nom" Pas dans Liste, ensuite dans l'opérande tu choisis "Sélectionner les résultats d'une autre requête". Après tu n'as plus qu'à choisir la requête concernée, puis l'objet à comparer.
    Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
    Un message vous a aidé ? Votez en cliquant sur
    Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton

  8. #8
    Membre habitué Avatar de schkrumble
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Points : 130
    Points
    130
    Par défaut
    Citation Envoyé par TomDuBouchon Voir le message
    En fait, il n'y a pas de manipulation particulière...
    Lorsque tu saisis ta condition "Nom" Pas dans Liste, ensuite dans l'opérande tu choisis "Sélectionner les résultats d'une autre requête". Après tu n'as plus qu'à choisir la requête concernée, puis l'objet à comparer.
    OK, autant pour moi, je confondais avec "créer une sous-requête".
    Ceci dit ça ne résout pas complètement mon problème puisque mon souci de correspondance ne se pose pas sur un seul objet mais sur une association entre deux objets.
    Peut-être qu'en créant un objet qui soit la concaténation de deux autres...


    Citation Envoyé par daz93 Voir le message
    Salut,

    Alors c'est un peu de la bidouille, mais effectivement lorsque tu travailles sur des dimensions (ou informations) de requêtes différentes, ce message apparaît.

    Est-ce que tu peux essayer la formule suivante (ou la variable) :
    =Comparer(Max.(<Info_Compte_1>) ,Max.(<Info_Compte_2>))

    En la déclarant comme indicateur ?

    Ensuite tu devrais pouvoir faire un alerteur ou un filtre sur la valeur 0 retournée par ta variable ....
    Piste intéressante...
    En m'y prennant de la sorte je peux effectivement faire un alerteur et même mettre en place un tri.
    Mais si je veux faire filtre BO me renvoie cette erreur : Impossible d'utiliser un agrégat dans filtre complexe
    domage ça marchait presque !

Discussions similaires

  1. Réponses: 0
    Dernier message: 24/08/2012, 11h59
  2. [AC-2007] Renommer un champ de requête à l'aide d'une variable issue d'un formulaire
    Par sdechabot dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 27/06/2012, 23h24
  3. [PDO] Problème d'accès au contenu d'une variable issue d'une requête.
    Par Java_doc dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 24/06/2012, 13h23
  4. [AC-2003] Comment utiliser une variable issue d'un recordset dans une requète SQL
    Par alainwilly dans le forum Access
    Réponses: 1
    Dernier message: 23/03/2012, 20h12
  5. Etat issu d'une requête d'analyse croisée
    Par loutsky dans le forum Access
    Réponses: 3
    Dernier message: 18/03/2006, 16h19

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