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

BIRT Discussion :

[Designer] Colonne "null" dans un DateCube


Sujet :

BIRT

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Par défaut [Designer] Colonne "null" dans un DateCube
    Bonjour,

    J'ai un dataCube avec deux groupes et une donnée.

    en gros j'ai une liste d'action groupé par utilisateur et par date.
    --------- user1 | user2
    date1 -- action | action
    date2 -- action | action

    sachant que les utilisateurs sont un groupe dynamique.

    le datacube est issu de deux dataset, un qui sors les données de la BDD et l'autre qui créé une liste de dates, celle ci est utile pour etre sur que toutes les dates seront représenté dans un tableau ou un graphe.

    Donc le dataset final aura toutes les dates d'une periode mais une date n'aura pas forcement une action et un utilisateur.

    résumé : dataset données + dataset dates => datacube

    Pour revenir au datacube, lorsque l'on groupe par utilisateur (je groupe sur les colonnes) il m'ajoute une colonne de avec le titre vide et toutes ces valeurs a 0.
    En soi je comprends pourquoi elle est la, vu qu'il groupe dynamiquement par utilisateur, lorsqu'il cherche les utilisateurs il les trouve tous + un champs vide (a cause de la jointure). Donc au pire j'aimerai pouvoir ne pas afficher cette colonne.

    Merci d'avance a tous ceux qui m'auront compris et qui m'aideront

  2. #2
    Membre émérite
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2009
    Messages
    529
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2009
    Messages : 529
    Par défaut
    Salut,

    Si je comprends bien, actuellement le groupe des utilisateurs est extrait à partir de la table des actions après jointure externe, c'est ça? Je vois 2 solutions:

    Solution 1-Au niveau des crosstabs créés à partir du datacube, ajouter systématiquement un filtre sur le champs user. Il y a justement une fonction "is not null" native dans la construction des filtres.

    Solution 2-Pour résoudre le problème au niveau du datacube: il faut créer un dataset spécifique qui retourne la liste des utilisateurs, et créer le groupe des utilisateurs à partir de ce dataset, et non plus à partir du dataset principal. Dans l'édition du datacube builder, il faut juste bien penser dans "Link group" à lier ce nouveau dataset avec le dataset principal. Si tu n'as pas de table des utilisateurs dans ta base, tu peux éventuellement utiliser un "select distinct" sur la table des actions, du moment que c'est fait avant que la jointure externe avec les dates soit appliquée cela devrait fonctionner.

    C'est la solution la plus propre mais elle modifie la structure du datacube, cela peut provoquer des erreurs très difficiles à corriger dans les graphes/tableaux existants déjà basés dessus, bien penser à faire une sauvegarde du rapport et/ou de la librairie avant.

    A+

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2008
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 143
    Par défaut Dimension null
    Pour moi une Dimension qui peut avoir une valeur "null" a un défaut de conception. On ne peut pas aggréger sur "null". Par contre on peut "mapper" la valeur null vers "Autres"

    Donc la solution 1 de donino est la seule qui prime.

    Au passage , modifier le SQL de votre dataset serait encore mieux , avec un truc du style WHERE champ IS NOT NULL ou alors meubler avec "Autres" à la place de null.

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

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