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

SSAS Discussion :

Afficher un total global


Sujet :

SSAS

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Avril 2011
    Messages
    4
    Points
    1
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 4
    Points : 1
    Par défaut Afficher un total global
    Bonjour,

    Je débute en SSRS, et plus globalement en MDX (je travaille sur un cube OLAP). Je ne connais, pour ainsi dire, pas grand chose, voire rien !
    En clair, je suis vraiment une nouille dans ce domaine... je crois que j'ai assez insisté sur ce fait

    J'ai créé un rapport qui affiche, pour chaque magasin d'une même enseigne, le CA par sous-rayon.
    Je filtre par semaine et par année.

    A côté de ça, j'aimerais pouvoir afficher le CA global de ce sous-rayon mais pour l'ensemble des magasins d'une même enseigne. Faire un genre de comparaison sous-rayon d'un magasin VS sous-rayon enseigne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [Enseigne] [Magasin] [Rayon] [Sous-Rayon] [CA] [CA Total]
    ----Ens1------Mg1-----Ry1-------Sr1-------20----300
    ----Ens1------Mg2-----Ry1-------Sr1-------14----300
    ----Ens1------Mg1-----Ry2-------Sr1-------49----102
    Il faut que ça donne un truc comme ça dans le concepteur de requêtes de Visual Studio.

    De mon point de vue, il faut créer un membre calculé qui va faire un Sum de l'ensemble des CA qui font parti d'un même sous-rayon pour la même enseigne.
    Le soucis, c'est que je ne vois pas du tout comment faire ce Sum... j'ai essayé comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    With Member [Measures].[CA Total] AS
    Sum([Enseigne], [CA])
    ... ben ça ne fonctionne pas... quelqu'un peut éclairer ma lanterne ? Merci ^^

    PS: J'ai besoin de ce CA global au niveau des données récupérées parce que j'ai des calculs à faire avec (il faut que je ressortes un pourcentage avec l'année en cours et l'année précédente). Mais c'est une autre histoire !

  2. #2
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Points
    2 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : BI Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 485
    Points : 2 883
    Par défaut
    Est ce que [Enseigne], [Magasin], [Rayon] et [Sous-Rayon] font partie d'une même hiérarchie utilisateur ou pas du tout?

    J'ai créé un rapport qui affiche, pour chaque magasin d'une même enseigne, le CA par sous-rayon.
    Tu peux déjà mettre la requête MDX qui fait ça?

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Avril 2011
    Messages
    4
    Points
    1
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 4
    Points : 1
    Par défaut
    Alors concernant la hiérarchie, elle n'existe que pour [Rayon] et [Sous-Rayon].

    C'est même beaucoup plus compliqué que ça, vu que la hiérarchie (une hiérarchie Produit en fait) s'étend sur beaucoup plus de niveau.

    [Magasin] fait parti d'une hiérarchie (la hiérarchie Magasin), mais pas [Enseigne] (c'est bizarre mais on n'y peut rien.. c'est pas moi qui ait fait le cube

    J'ai créé un rapport qui affiche, pour chaque magasin d'une même enseigne, le CA par sous-rayon.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SELECT
        NON EMPTY {
            [Measures].[CATTC]
        } ON COLUMNS
      , NON EMPTY { 
            ([Magasin].[Classe_magasin_enseigne].[Classe_magasin_enseigne].ALLMEMBERS
            * [Magasin].[Stock room geographical dynamic hierarchy].[magagin].ALLMEMBERS
            * [Produit].[Product Hierarchy].[Sous-Rayon].ALLMEMBERS )
        } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS
     
    FROM [CubeOlap]
    Je t'ai fais grâce des éléments de FROM et de WHERE qui inclut le filtrage (pour la semaine et l'année).

    Pour la hiérarchie Produit, elle s'étend ainsi:
    [Classification] - [Niveau 1] - [Niveau 2] - [Niveau 3]

    ça va plus bas, mais je me limite au niveau 3 qui correspond au sous-rayon.
    La classification et le niveau 1 ne m'intéresse pas, mais si ça doit servir, je voulais le signaler quand même !

  4. #4
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Points
    2 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : BI Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 485
    Points : 2 883
    Par défaut
    Alors tu dois pouvoir l'exprimer avec un truc qui ressemble à ça, ça devrait le faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    WITH MEMBER
    [Measures].[CA Sous-Rayon Enseigne]
    AS
    Aggregate
    (
    	{[Magasin].[Classe_magasin_enseigne].CurrentMember}*
    	{[Magasin].[Stock room geographical dynamic hierarchy].[(All)]},
    	[Measures].[CATTC]
    )

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Avril 2011
    Messages
    4
    Points
    1
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 4
    Points : 1
    Par défaut
    Merci pour cette réponse.

    J'ai donc essayé ta solution.
    Je comprends l'idée et c'était aussi ce que je voulais tenter. Malheureusement, ça ne fonctionne pas.

    Voilà ce que j'ai utilisé (parce qu'avec ta solution, je n'ai que des NULL).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    MEMBER [Measures].[CA Sous-Rayon Enseigne] AS Aggregate (
          {[Magasin].[Classe magasin Enseigne].CurrentMember}
          * {[Produit].[Sous-Rayon].ALLMEMBERS}
          , [Measures].[CA]
    )
    Avec mon code, je récupère le total du rayon à chaque fois.
    Un rayon contient plusieurs sous-rayon. Ca m'affiche pour chaque sous-rayon la somme des CA des sous-rayon d'un rayon.

    Donc ce n'est pas ce que je veux. Moi j'aimerais avoir la somme d'un sous-rayon pour une enseigne.

    Un exemple sera plus concret:
    Enseigne:
    -- MonEns
    Magasin:
    -- MonMag
    Rayon:
    -- Femme
    Sous-Rayon:
    -- Classique
    -- Junior

    Avec un filtre sur la date et sur le magasin, je peux obtenir le CA des sous-rayon 'Classique' et 'Junior' pour CE magasin.

    Ce que je veux, c'est aussi avoir le CA de ces sous-rayon pour l'enseigne.

    Ca va faire indigeste, mais je te donne ma requête complète:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    WITH MEMBER [Measures].[CATTC N-1] AS Iif (
         [Measures].[Retail sales amount invoiced including tax] <> 0
             AND (ParallelPeriod([Time calendar].[Time calendar month hierarchy].[Time calendar year], 1, [Time calendar].[Time calendar month hierarchy].CurrentMember), [Measures].[Retail sales amount invoiced including tax]) <> 0,
        (ParallelPeriod([Time calendar].[Time calendar month hierarchy].[Time calendar year], 1, [Time calendar].[Time calendar month hierarchy].CurrentMember), [Measures].[Retail sales amount invoiced including tax]),
        0
    ) MEMBER [Measures].[CATTC] AS Iif (
         [Measures].[Retail sales amount invoiced including tax] <> 0,
         [Measures].[Retail sales amount invoiced including tax],
        0
    ) MEMBER [Measures].[PROG] AS Iif (
        (ParallelPeriod([Time calendar].[Time calendar month hierarchy].[Time calendar year], 1, [Time calendar].[Time calendar month hierarchy].CurrentMember), [Measures].[Retail sales amount invoiced including tax]) <> 0,
         ([Measures].[Retail sales amount invoiced including tax] - (ParallelPeriod([Time calendar].[Time calendar month hierarchy].[Time calendar year], 1, [Time calendar].[Time calendar month hierarchy].CurrentMember), [Measures].[Retail sales amount invoiced including tax]))
             / (ParallelPeriod([Time calendar].[Time calendar month hierarchy].[Time calendar year], 1, [Time calendar].[Time calendar month hierarchy].CurrentMember), [Measures].[Retail sales amount invoiced including tax]),
        0
    )
     
    MEMBER [Measures].[CA Sous-Rayon Enseigne] AS Aggregate (
          {[Stock room].[Stock room class Enseigne].CurrentMember}
          * {[Magasin].[Stock room geographical dynamic hierarchy].ALLMEMBERS}
          , [Measures].[Retail sales amount invoiced including tax]
    )
     
    SELECT NON EMPTY {
       [Measures].[CATTC], [Measures].[CATTC N-1], [Measures].[PROG], [Measures].[CA Sous-Rayon Enseigne] } ON COLUMNS,
               NON EMPTY {
       ([Stock room].[Stock room class Enseigne].[Stock room class Enseigne].ALLMEMBERS * [Stock room].[Stock room geographical dynamic hierarchy].[Stock room].ALLMEMBERS * [Product].[Product Hierarchy].[Product main class level 3].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS
     
    FROM ( SELECT ( STRTOSET(@TimecalendarTimecalendarweekofyear, CONSTRAINED) ) ON COLUMNS FROM ( SELECT ( STRTOSET(@TimecalendarTimecalendaryear, CONSTRAINED) ) ON COLUMNS FROM ( SELECT ( STRTOSET(@StockroomStockroomcode, CONSTRAINED) ) ON COLUMNS FROM [CustomNextTest])))
     
    WHERE ( IIF( STRTOSET(@StockroomStockroomcode, CONSTRAINED).Count = 1, STRTOSET(@StockroomStockroomcode, CONSTRAINED), [Stock room].[Stock room code].currentmember ), IIF( STRTOSET(@TimecalendarTimecalendaryear, CONSTRAINED).Count = 1, STRTOSET(@TimecalendarTimecalendaryear, CONSTRAINED), [Time calendar].[Time calendar year].currentmember ), IIF( STRTOSET(@TimecalendarTimecalendarweekofyear, CONSTRAINED).Count = 1, STRTOSET(@TimecalendarTimecalendarweekofyear, CONSTRAINED), [Time calendar].[Time calendar week of year].currentmember ) ) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Avril 2011
    Messages
    4
    Points
    1
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 4
    Points : 1
    Par défaut
    Bon après quelques recherches et un peu d'aide, je pense que le problème se situe surtout sur la dimension Magasin. Etant donné que je filtre sur le magasin, le membre calculé ne produit pas les résultats escomptés.

    J'ai refais un dataset dans lequel j'ai pu récupéré exactement la donnée dont j'ai besoin. Et la seule différence, c'est que je ne filtre pas sur le magasin:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SELECT NON EMPTY 
        { [Measures].[Retail sales amount invoiced including tax] } 
    ON COLUMNS
        , NON EMPTY { 
        ([Stock room].[Stock room class Enseigne].[Stock room class Enseigne].ALLMEMBERS * [Product].[Product price hierarchy].[Product main class level 3].ALLMEMBERS ) }
    DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS 
        FROM ( 
           SELECT ( { [Time calendar].[Time calendar year].&[2011] } ) ON COLUMNS FROM ( 
           SELECT ( { [Time calendar].[Time calendar week of year].&[12] } ) ON COLUMNS 
           FROM [CustomNextTest]))
        WHERE ( [Time calendar].[Time calendar week of year].&[12], [Time calendar].[Time calendar year].&[2011] ) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS
    Donc je modifie ma question à présent... comment faire pour réunir mes 2 requêtes sous une seule et même requête.
    En SQL, ça donnerait à peu près ce ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    SELECT mag.ca
    	, mag.can_1
    	, mag.enseigne
    	, mag.magcode
    	, rayon
    	, sous_rayon
    	, (SELECT SUM(ens.ca) 
    	   FROM _temp ens
    	   WHERE ens.semaine = 12
    	   AND ens.annee = 2011
    	   AND ens.rayon = mag.rayon
    	   AND ens.sous_rayon = mag.sous_rayon
    	   AND ens.enseigne = mag.enseigne) CaEns
    FROM _temp mag
    WHERE semaine = 12
    AND annee = 2011
    AND magcode = 'C001'

Discussions similaires

  1. [5.1.4] Afficher le total sur un graphique
    Par EmmanuelleC dans le forum Débuter
    Réponses: 3
    Dernier message: 25/09/2008, 11h31
  2. Calcul d'un total global et de sous total
    Par LhIaScZkTer dans le forum Langage SQL
    Réponses: 11
    Dernier message: 29/08/2008, 18h20
  3. [BO 6.5] Total global dans une section
    Par Charly_An dans le forum Deski
    Réponses: 2
    Dernier message: 09/07/2008, 10h44
  4. afficher le total de 2 requêtes
    Par cdevl32 dans le forum Requêtes
    Réponses: 6
    Dernier message: 21/03/2008, 16h16
  5. afficher le total de 2 requêtes
    Par cdevl32 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 21/03/2008, 11h21

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