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 :

Calcul de stock a une date


Sujet :

SSAS

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2008
    Messages : 699
    Points : 586
    Points
    586
    Par défaut Calcul de stock a une date
    Bonjour,

    Avant tout merci a ceux qui m'ont poussé vers SSAS, je suis un nouvel homme.

    J'ai créer mon premier cube de donnée sur les ventes et les mouvements de stock.

    Mon problème est des connaitre le stock à une date donnée. Le stock n'étant pas palpable ni historisable (modifications dans le passé etc..) pour le connaître je dois faire la somme des mouvements avant la date dont je veux connaitre le stock.

    Maintenant dans mon cube j'ai une mesure Quantité qui représente les mouvements de pièces. J'aimerais maintenant avoir le stock par dates.

    Je ne dois pas être le seul dans ce cas, est ce que l'un de vous a une piste ou quelque mots clé que je peux googleliser ?

    J'ai déjà regarder du côté de la fonction LAG mais ça ne semble pas convenir.

    J'ai aussi essayé cette expression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sum(       
        [A Temps].[Date].members(0): ClosingPeriod([A Temps].[Date]),
        ISNULL([Measures].[Qte],0)
       )
    Mais ça me retourne que des NULL
    Merci, a bientôt

  2. #2
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    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
    Points
    2 883
    Par défaut
    Avant tout merci a ceux qui m'ont poussé vers SSAS, je suis un nouvel homme.
    C'est comme beaucoup de choses, ça fait mal au début mais après on se sent grandi^^.

    Pour ton problème ça devrait marcher si tu utilises un truc comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CREATE MEMBER CURRENTCUBE.[Measures].[Stock]
    AS
    SUM
    (
       {NULL:[Date].[Date].CurrentMember}
       , [Measures].[Qte]
    );

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2008
    Messages : 699
    Points : 586
    Points
    586
    Par défaut
    Citation Envoyé par FrancoisJehl Voir le message
    C'est comme beaucoup de choses, ça fait mal au début mais après on se sent grandi^^.

    Pour ton problème ça devrait marcher si tu utilises un truc comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CREATE MEMBER CURRENTCUBE.[Measures].[Stock]
    AS
    SUM
    (
       {NULL:[Date].[Date].CurrentMember}
       , [Measures].[Qte]
    );
    ça me retourne des null aussi...


    Mais j'ai pu avancer un peu. Le code suivant fonctionne, mais uniquement lorsque je groupe par [date] (logique j'imagine) mais ça ne marche pas lorsque je groupe par année. Je ne voudrais pas avoir un champ calculer par type de recherche...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sum(
        [A Temps].[Date].[Date].members(0): ClosingPeriod([A Temps].[Date].[Date]),
        [Measures].[Qte]
       )

  4. #4
    Membre averti Avatar de arnaudvoisin
    Homme Profil pro
    Consultant BI chez WAISSO
    Inscrit en
    Janvier 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant BI chez WAISSO

    Informations forums :
    Inscription : Janvier 2007
    Messages : 156
    Points : 361
    Points
    361
    Par défaut
    Qu'est-ce que tu entends quand tu dis
    ça me retourne des null aussi...
    Les membres portant des valeurs null pour ta mesure stock s'affichent ? C'est ce que tu veux dire ? Si c'est le cas tu peux utiliser la fonction NON EMPTY ou NONEMPTY() (à ta guise). On verra les considération de performances plus tard.

    Sinon je te conseille d'utiliser la méthode de François qui est plus générique et fonction pour toutes les hiérarchies contrairement à celle que tu as écrit.

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2008
    Messages : 699
    Points : 586
    Points
    586
    Par défaut
    Citation Envoyé par arnaudvoisin Voir le message
    Qu'est-ce que tu entends quand tu dis


    Les membres portant des valeurs null pour ta mesure stock s'affichent ? C'est ce que tu veux dire ? Si c'est le cas tu peux utiliser la fonction NON EMPTY ou NONEMPTY() (à ta guise). On verra les considération de performances plus tard.

    Sinon je te conseille d'utiliser la méthode de François qui est plus générique et fonction pour toutes les hiérarchies contrairement à celle que tu as écrit.
    J'ai toujours des null dans la colonne calculée...
    Avec cette modif ça fonctionne bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sum(
        null: ClosingPeriod([A Temps].[Date].[Date]),
        [Measures].[Qte]
       )
    En revanche j'ai toujours le problème de la période...
    Si je prend année au lieu de date ça ne marche plus

  6. #6
    Membre éprouvé Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Points : 1 057
    Points
    1 057
    Par défaut
    Je suis relativement débutant dans le domaine, mais si tu prend ton niveau [Date] dans une hiérarchie qui a aussi l'année ça devrait fonctionner.

    Par exemple si tu as une hiérarchie [Temps] avec les niveaux [Année], [Mois] puis [Date] un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    sum(
        NULL: ClosingPeriod([A Temps].[Temps].[Date]),
        [Measures].[Qte]
       )
    devrait marcher. SSAS comprend du coup qu'il n'y a qu'une année possible pour la date et peut faire le rollup grâce à la hiérachie.

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2008
    Messages : 699
    Points : 586
    Points
    586
    Par défaut
    Citation Envoyé par Jester Voir le message
    Je suis relativement débutant dans le domaine, mais si tu prend ton niveau [Date] dans une hiérarchie qui a aussi l'année ça devrait fonctionner.

    Par exemple si tu as une hiérarchie [Temps] avec les niveaux [Année], [Mois] puis [Date] un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    sum(
        NULL: ClosingPeriod([A Temps].[Temps].[Date]),
        [Measures].[Qte]
       )
    devrait marcher. SSAS comprend du coup qu'il n'y a qu'une année possible pour la date et peut faire le rollup grâce à la hiérachie.
    Nop, marche pas non plus...
    J'ai une dimension [A Temps] qui contient une hiérarchie [HierarchyMonth] qui contient les attributs:
    -Année
    -Un champ calculé (Année*100)+Mois
    -Date

    en utilisant le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sum(
        null: ClosingPeriod([A Temps].[HierachyMonth].[Date]),
        [Measures].[Qte]
       )
    Si je groupe par date ça marche bien, mais si je groupe par année ou par mon champ calculé, j'ai toujours la somme totale à chaque ligne...


    EDIT: Sauf que après un deploy ça marche ^^ je suis trop mauvais

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

Discussions similaires

  1. Calcul de validité d'une date
    Par luffy27 dans le forum C
    Réponses: 3
    Dernier message: 22/10/2007, 11h47
  2. [XI]calcul de cumul depuis une date
    Par lamyae_84 dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 05/05/2007, 00h20
  3. [Dates] Calcul tout bête sur une date...
    Par poah dans le forum Langage
    Réponses: 5
    Dernier message: 01/11/2005, 16h02

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