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

Webi Discussion :

BO Webi Nombre de clients non present dans une autre table


Sujet :

Webi

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2013
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 5
    Points : 4
    Points
    4
    Par défaut BO Webi Nombre de clients non present dans une autre table
    Bonjour,

    je vais être plus explicite. J'ai deux tables (table1, table2), je voudrai savoir comment faire pour connaitre les clients qui sont uniquement dans la table 1.
    Pour ce faire dans mon univers j'ai déclaré un indicateur avec le mode d’agrégation en 'base de donnée déléguée' de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT : count(distinct (Table1.NUM_CLIENT))
    WHERE : @Select(Table1\NUM_CLIENT)  NOT IN  (select distinct Table2.NUM_CLIENT from Table2)
    Je compte l'ensemble des clients distincts de la table 1 pour lesquels le numéro de client n'a pas été trouvé dans la table 2.
    A mon avis, c'est la bonne solution, mais BO me retourne une valeur double de ce qui devrait être retourné.

    Avez vous une idée?

    Je précise que dans l’univers je n'ai pas lié les deux tables, je décris la fusion dans le rapport final.

  2. #2
    Membre expérimenté
    Avatar de bastoonet
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Septembre 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 011
    Points : 1 342
    Points
    1 342
    Par défaut
    Tu peux aussi faire des requetes combinée en faisant :
    requete 1(table 1) MINUS requetes 2 (table 2)

    Attention, il faut avoir les mêmes objets dans le SELECT des requetes.

    Pour ta requete, elle semble juste, as-tu vérifié les valeurs des num_client restituées, si tu as des espaces dans ton numéro client, il peut etre compté plusieurs fois comme valeur distinctes.
    ~ Bastoonet ~

    Consultant BI

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2013
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Bonjour,
    il me semble bizarre que la méthode que j'ai utilisée ne fonctionne pas.
    J'ai bien vérifié les num_client, car j'ai testé en parallèle cette requête sous Oracle et j'ai bien les bons chiffres.
    Je tente votre méthode et je reviens vers vous.
    Merci

  4. #4
    Candidat au Club
    Inscrit en
    Janvier 2013
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par bastoonet Voir le message
    Tu peux aussi faire des requetes combinée en faisant :
    requete 1(table 1) MINUS requetes 2 (table 2)

    Attention, il faut avoir les mêmes objets dans le SELECT des requetes.

    Pour ta requete, elle semble juste, as-tu vérifié les valeurs des num_client restituées, si tu as des espaces dans ton numéro client, il peut etre compté plusieurs fois comme valeur distinctes.
    C'est pas mieux avec minus, surtout que mes noms de champs dans les tables sont différents.

    Je ne vois pas de solution à part le not in, mais qui me renvoie une valeur fausse. (Dois-je bien rester en 'base de donnée déléguée'?)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 364
    Points : 551
    Points
    551
    Par défaut
    Bonjour,

    Si j'ai bien compris, tu as créé dans le Designer un indicateur qui contient le SQL posté.
    Cet indicateur utilise 2 tables qui ne sont pas reliées ensemble. Dans ton univers, tu as donc des tables isolées.

    Les SQL en lui même doit fonctionner dans n'importe quel éditeur.

    Comment comptes-tu utiliser ton indicateur pour faire des requêtes :
    Tout seul ou bien associé à d'autres champs.

    Si dans un éditeur de requêtes, tu mets ton indicateur seul, est-ce qu'il te génère seulement le SQL posté ou ramène-t-il d'autres jointures.

    Les utilisateurs sauront-ils que s'ils mettent cet indicateur dans leur requête celui-ci va générer une sous-requête sans les prévenir ?

    Par ailleurs la fonction de projection pour count() est Somme, je ne vois pas la valeur ajoutée de "base de données déléguée" ici.

    Pour compter le nombre de valeurs T1 qui ne figurent pas dans T2. je préférerais créer une table dérivée (ou une vue si tu as accès à la base de données) contenant une requête qui renverrai un champ = 1 si la donnée est dans les 2 tables 0 = dans le cas contraire. Cette table pourrait aisément être liée à T1 et ainsi intégrée à l'univers. L'indicateur créé sur le champ s'agrégerait avec la somme et lors de l'utilisation il aurait un comportement aisément compréhensible. En terme de perfs l'exécution de la requête sera certainement un peu plus longue mais probablement plus saine.

    Cordialement,

Discussions similaires

  1. recherche de valeur non présentes dans une autre table
    Par omelhor dans le forum Requêtes
    Réponses: 2
    Dernier message: 16/02/2015, 10h51
  2. [MySQL] Identifiants non présents dans une autre table
    Par brahim-brown dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/08/2012, 10h46
  3. [MySQL] Récupérer liste d'emails non inscrits dans une autre table
    Par dldstyle dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 12/01/2012, 16h14
  4. Réponses: 5
    Dernier message: 19/02/2009, 17h00
  5. Numero non present dans une autre table
    Par AlphonseBrown dans le forum Langage SQL
    Réponses: 7
    Dernier message: 22/02/2005, 12h37

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