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

Développement SQL Server Discussion :

Retirer les valeurs (NULL) d'une requete MDX


Sujet :

Développement SQL Server

  1. #1
    Membre actif
    Inscrit en
    Avril 2005
    Messages
    644
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 644
    Points : 254
    Points
    254
    Par défaut Retirer les valeurs (NULL) d'une requete MDX
    Bonjour,

    Je voudrai savoir comment peut-on faire pour retirer les valeurs (null) d'une requete MDX?
    Dans mon cas, je voudrai avoir la liste des articles qui ont ete vendus au cours de l'année.
    Etant donné que le numéro de l'article est un parametre à saisir par l'utilisateur, j'ai besoin de [Measure].[parametervalue] en rapport avec l'article, or qd je demande cette mesure dans ma requete, dans mon resultat j'ai tous les numéros des articles et pas seulement ceux de l'année concernée.
    Et tous les résultats que je ne désire pas ont un montant = (NULL).
    Evidemment comme j'ai modifié ma requete, je n'ai pas acces à "Retirer les cellules vides"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     with MEMBER [Measures].[ParameterValue] AS '[Dim Compte].[COMPTE].CURRENTMEMBER.UNIQUENAME'
    SELECT NON EMPTY { [Measures].[BP],[Measures].[ParameterValue] } ON COLUMNS, 
    NON EMPTY { ([Dim Exercice Budgetaire].[EXERCICE].[EXERCICE].ALLMEMBERS * [Dim Compte].[COMPTE].[COMPTE].allmembers ) } 
    DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS 
    FROM ( SELECT ( STRTOSET(@DimExerciceBudgetaireEXERCICE, CONSTRAINED) ) ON COLUMNS 
    FROM [Win M9DW]) 
    CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS
    Je suis sous SQL server 2005, et le dataset de mon rapport est basé sur un cube

    merci par avance

    Geof

  2. #2
    Membre éclairé
    Avatar de Reskibil
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 815
    Points
    815
    Par défaut
    Bonjour,

    Pour résoudre ce même problème, j'ai fait ceci :

    WITH MEMBER [Measures].[ParameterValue] AS iif([Measures].[# Proposal]=null,null,[Fact Proposal].[Market].CURRENTMEMBER.UNIQUENAME)

    En fait, dans mon cas, je regarde si mon paramètre Market a des proposal (# proposal), si oui, je prend les valeurs, sinon, je met tout à NULL et avec le NON EMPTY, ils n'apparaissent pas.

    Je sais pas si c'est ce qu'il y a de plus propre, mais ca marche.
    Donc dans ton cas, tu regarde si le produit à une valeur de vente, si oui, tu affiches tout, si non, tu mets tout à NULL.

    Si quelqu'un connait un moyen plus propre, ca peut m'intéresser également.

  3. #3
    Membre actif
    Inscrit en
    Avril 2005
    Messages
    644
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 644
    Points : 254
    Points
    254
    Par défaut
    avec ton expression j'ai des NULL partout...
    J'ai bien la liste des articles correpondants à l'année quand je ne met pas le '#', mais je n'ai plus la colonne [Measures].[ParameterValue]...ca me fatigue en ce vendredi...
    Je continue de chercher...

  4. #4
    Membre éclairé
    Avatar de Reskibil
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 815
    Points
    815
    Par défaut
    Justement, c'est l'idée. Si toute ta ligne a des Null, le non empty va les masquer. Si tu les vois avec Non Empty, c'est qu'il doit y avoir encore des valeurs.

    Tu peux mettre ton MDX en entier ici ?

  5. #5
    Membre actif
    Inscrit en
    Avril 2005
    Messages
    644
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 644
    Points : 254
    Points
    254
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    WITH 
    MEMBER [Measures].[ParameterValue] as iif([measures].[bp]=null,null,[Dim Compte].[Compte].CURRENTMEMBER.UNIQUENAME)
    SELECT 
    NON EMPTY { [Measures].[BP],[Measures].[ParameterValue] } ON COLUMNS, 
    NON EMPTY { ([Dim Exercice Budgetaire].[EXERCICE].[EXERCICE].ALLMEMBERS * [Dim Compte].[COMPTE].[COMPTE].ALLMEMBERS ) } 
    DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS 
    FROM [Win M9DW] 
    CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS
    J'ai donc essayé ta solution, ca fonctionne en partie, j'ai bien les articles que je dois voir apparaitre, mais le souci c'est que j'ai [measures].[parameterValue]=null quand [measures].[bp]=0, c'est la que ca coince...
    J'ai essayé avec FILTER, j'ai le meme resultat...

  6. #6
    Membre éclairé
    Avatar de Reskibil
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 815
    Points
    815
    Par défaut
    C'est bizarre car il devrait faire une différence entre NULL et 0, 0 étant une valeur et NULL un vide.
    Tu peux sinon faire quelques arrangements avec par exemple un flag dans un nouveau champ dans une vue.

    Sinon il y a peut être un autre moyen mais je ne le connais pas. J'avais ca et ca marche pour moi, il différencie bien les 0 des NULL.

  7. #7
    Membre actif
    Inscrit en
    Avril 2005
    Messages
    644
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 644
    Points : 254
    Points
    254
    Par défaut
    j'ai l'impression que le pb vient de [measures].[ParameterValue], mais alors pourquoi??
    Je continue de chercher, je mettrai un post dans le cas où je trouve...

Discussions similaires

  1. Retirer les valeurs (NULL) d'une requete MDX
    Par geof dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 30/10/2007, 14h12
  2. comment remplacer les resultat NULL dans une requete HQL
    Par Rambler dans le forum Hibernate
    Réponses: 1
    Dernier message: 28/08/2007, 16h55
  3. remplacer les valeurs nulles dans une table
    Par jessy212 dans le forum Access
    Réponses: 4
    Dernier message: 28/08/2006, 13h22
  4. Comment gérer les valeur Nulles dans une requête ?
    Par sondo dans le forum Bases de données
    Réponses: 3
    Dernier message: 16/03/2005, 11h02
  5. Affcecter une valeur NULL dans une requete paramétrée
    Par thiouwz2 dans le forum Bases de données
    Réponses: 7
    Dernier message: 05/11/2004, 15h02

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