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

Cognos Discussion :

Report studio équivalent de l'opérateur SQL not exists


Sujet :

Cognos

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 10
    Points : 8
    Points
    8
    Par défaut Report studio équivalent de l'opérateur SQL not exists
    Bonjour,

    Avant toute chose j'utilise Cognos 8.3 et mon problème, ma question, se situe au niveau de report studio.

    Quelqu'un pourrait il me donner un petit coup de main SVP.

    Imaginons que nous avons une requête SQL comme celle indiquée ci-dessous.
    --> Comment la générer dans report studio ?
    --> Faut il utiliser l'objet indésirable nommé "Exception" ? Si oui pouvez-vous m'expliquer comment il fonctionne car je n'arrive pas à le faire marcher.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      select cle,libelle, ... 
      from maTable 
      where 
        not exists 
         ( select cle2 
           from maTable2 
           where maTable.cle=matable2.cle
         )

    A bientôt et merci d'avance

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2003
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 194
    Points : 118
    Points
    118
    Par défaut
    Bonjour, alors déjà tu n'as pas besoin de faire de requète SQL sous report ! Tout cela est géré différement :
    Je suppose que tu as créé une couche métier sous Framework qui contient ta ou tes tables (ou fichiers selon ce que tu utilise comme BDD) et que tu as publié un package contenant ta couche métier (incluant donc tes n tables).
    Pour reprendre ton exemple :
    tu doit avoir une couche métier qui contient "maTable" et "maTable2".

    Une fois ton package publié, tu retourne sous report studio et en créant un nouveau rapport tu choisis donc ce package comme source de données.
    De là tu peut faire ce que tu veut :
    - jointure
    - filtre (equivalent du WHERE en SQL).

    Si tu as besoin de plus d'infos, j'éssaierais de t'aider au mieux
    Si tout semble bien marcher c'est que vous avez oublié quelque chose !

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Tout d'abord merci Golork.

    Pour répondre à tes question : oui j'ai bien créé une couche métier sous métier dans framework.

    Dans report studio j'ai bien pensé à utiliser l'objet indésirable jointure mais moi je veux afficher les données de maTable qui ne sont pas présentes dans maTable2. Avec une jointure j'aurai les données de matable qui sont présentes dans maTable2. Est-ce que je me trompe ?

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2003
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 194
    Points : 118
    Points
    118
    Par défaut
    Salut, premièrement laisse moi te corriger un peu car mes collègue sont tous mort de rire quand tu dit "Objets indésirables"... C'est "Objets insérables" !!

    Ceci dit si tu veut les données de maTable sauf ce qui se trouve dans maTable2 il te suffit de prendre "Intersection".
    Pour cela :
    - tu fais glisser cet objet dans la fenêtre de droite (en supposant que tu te trouve dans l'explorateur de requète)
    - là une nouvelle requète est créé (appelont la, "requète 2"), tu met maTable dans la cellule du haut et maTable2 dans celle du bas
    ensuite je suis pas trop sûr :
    - tu double clic sur "requète 2" (enfin suivant le nom de ta nouvelle requète)
    - dans données élémentaire tu y met les champs que tu veut utiliser
    - ensuite on va créer un filtre (clic sur l'onglet "boite à outils" des objets insérable) : double clic sur "Filtre"
    - là tu met dans la requète [cle] = [cle2] (en faisant des glisser/déplacer tes champs qui se trouvent dans "Eléments disponibles".
    - maintenant tu fais ta liste de données pour voir si ça t'affiche bein les résultats.

    edit: bon peut être y a il plus simple, car j'ai pas encore été confronté à ce problème car il est réglé avant d'arriver sous report studio (ma BDD est sous AS400)
    Si tout semble bien marcher c'est que vous avez oublié quelque chose !

  5. #5
    Futur Membre du Club
    Inscrit en
    Janvier 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Ok merci il s'agit bien de cela :
    * L'équivalent de la commande SQL not exists = intersection avec suppression des doublons. Je pensais que l'intersection prenait en compte les données en doubles mais en fait nous pouvons le paramétrer et je ne l'avais pas vu.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/03/2012, 13h34
  2. Réponses: 2
    Dernier message: 01/10/2010, 23h53
  3. Report Studio 8.4 - Requête SQL & prompt
    Par Melri dans le forum Cognos
    Réponses: 2
    Dernier message: 04/06/2009, 19h48
  4. Réponses: 1
    Dernier message: 22/01/2009, 23h33
  5. Réponses: 1
    Dernier message: 06/05/2008, 16h50

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