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 :

Comparer le lundi avec le lundi le plus proche de l'année précédente


Sujet :

SSAS

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    698
    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 : 698
    Points : 586
    Points
    586
    Par défaut Comparer le lundi avec le lundi le plus proche de l'année précédente
    Bonjour,

    Voilà mon problème du jour.

    Je dois comparer les chiffres d'une semaine par rapport à l'année précédente.
    La notion de semaine ne suffit pas car il y a les semaines 0 et 53 qui n'ont que quelques jours ce qui peut décaler la comparaison sur deux semaine.

    Du coup je dois comparer, par exemple, pour la semaine 42, le lundi 14.10.2013 je dois le comparer avec le lundi le plus proche du 14.10.2012.

    Je vois pas trop comment le réaliser.


    Des idées ?

  2. #2
    Membre confirmé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Novembre 2010
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2010
    Messages : 304
    Points : 579
    Points
    579
    Par défaut
    Alors déjà une semaine 0, ça n'existe pas.

    Ensuite si ta semaine 1 et ta semaine 53 n'ont que quelques jours, tu n'as vraisemblablement pas utilisé les semaines ISO.

    http://fr.wikipedia.org/wiki/Num%C3%...O_des_semaines

    Une fois ces semaines implémentées, la notion de jours comparables est la suivante :
    Tu compares le lundi de la semaine 24 de 2013 avec le lundi de la semaine 24 de 2012.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    698
    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 : 698
    Points : 586
    Points
    586
    Par défaut
    Si j'avais juste à comparer les semaine ça serait facile.

    Dans la vente il y a certains besoin qui ne sont pas exactement identique à ceux de la compta, comme par exemple comparé la semaine de noël avec la semaine de noël etc... d'ou la difficulté...

    Ensuite mes N° de semaines sont comparé avec des applications Windev qui donne une semaine 0.

    Mon problème reste entier...

  4. #4
    Membre éprouvé Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Points : 1 058
    Points
    1 058
    Par défaut
    Je crois que sur un problème similaire j'avais fait une table de mapping entre les comparaison de semaine. Pour chaque couple (année, semaine) la semaine de l'année précédente à considérer. C'était alimenté avec des règle métier (notamment pour la gestion de la semaine 53 qui peut tout décaler, je retrouvais la semaine la plus proche).

    Cependant, il n'y a pas de solution optimale de mémoire. Dans la plupart des domaines, une semaine avec Noël et Nouvel an n'est pas comparable avec une semaine avec juste Noël. Un Mardi 25 décembre n'est pas comparable avec un Mardi 24 décembre.

    Une solution est de corriger des différents effets, mais alors cela n'a plus de réalité (et quand on corrige les effets d'un pont entre un jour férié et un WE ça devient complexe). L'autre c'est de faire simple (ISO ou l'histoire du mapping ci-dessus).

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    698
    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 : 698
    Points : 586
    Points
    586
    Par défaut
    Citation Envoyé par Jester Voir le message
    Une solution est de corriger des différents effets, mais alors cela n'a plus de réalité (et quand on corrige les effets d'un pont entre un jour férié et un WE ça devient complexe). L'autre c'est de faire simple (ISO ou l'histoire du mapping ci-dessus).
    100% d'accord avec vous, mais ça ne convient pas a mes utilisateur, et comme c'est eux qui me payent je suis condamné

    Bon j'ai déjà dans ma table Calendirer le jours de l'année précédente avec lequel il est comparable d'après les règles métier.

    Faut-il que j'ai un membre calculé qui donne tel ou tel chiffre pour l'année précédente ?
    J'aimerais plutôt un truc "automatisé" pour comparer n'importe quel donnée avec celle de l'année précédente...

  6. #6
    Membre confirmé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Novembre 2010
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2010
    Messages : 304
    Points : 579
    Points
    579
    Par défaut
    Ben si t'as déjà le jour comparable dans ta table, c'est quoi la question ?

    Si c'est pouvoir l'utiliser, tu rajoutes un datetool à la Marco Russo avec ce que tu souhaites (jour comparable, semaine comparable, ...)

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    698
    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 : 698
    Points : 586
    Points
    586
    Par défaut
    Je fais un peu de recherche sur datetool et Marco Russo...

    C'est intéressant, mais si j'ai bien compris tout les agrégats sont calculé dans une vue du moteur relationnel SQL ?

    N'y a-t-il pas une solution qui me permette de développer / surcharger les fonctions PARALLELPERIOD etc.. comme je le ferais dans SQL Server avec une librairie .NET ?

  8. #8
    Membre confirmé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Novembre 2010
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2010
    Messages : 304
    Points : 579
    Points
    579
    Par défaut
    Je pense que tu n'as pas compris comment ça fonctionnait.

    Je t'invite à ne pas juste jeter un coup d'oeil rapide

    Il est de bon ton de connaitre Marco Russo et ses articles en plus quand on veut faire de la BI

  9. #9
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    698
    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 : 698
    Points : 586
    Points
    586
    Par défaut
    Citation Envoyé par d.joubert Voir le message
    Je pense que tu n'as pas compris comment ça fonctionnait.

    Je t'invite à ne pas juste jeter un coup d'oeil rapide

    Il est de bon ton de connaitre Marco Russo et ses articles en plus quand on veut faire de la BI
    ça m'aide pas beaucoup...

    J'ai lu entre autre
    Cet article
    C'est bien de ça qu'on parle ?

  10. #10
    Membre confirmé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Novembre 2010
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2010
    Messages : 304
    Points : 579
    Points
    579
    Par défaut
    Ah au temps pour moi, je croyais que c'était un forum d'entraide

    Mais a priori tu vois ça comme un forum où on fait à ta place, vu que si tu lis l'article, t'as tout le matériel nécessaire pour répondre à ta problématique.

    De plus à aucun moment, il ne crée les agrégations dans la base SQL, tout au plus juste les libellés. Même avec mon anglais scolaire, j'ai réussi à le comprendre.

  11. #11
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    698
    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 : 698
    Points : 586
    Points
    586
    Par défaut
    Citation Envoyé par d.joubert Voir le message
    Ah au temps pour moi, je croyais que c'était un forum d'entraide

    Mais a priori tu vois ça comme un forum où on fait à ta place, vu que si tu lis l'article, t'as tout le matériel nécessaire pour répondre à ta problématique.

    De plus à aucun moment, il ne crée les agrégations dans la base SQL, tout au plus juste les libellés. Même avec mon anglais scolaire, j'ai réussi à le comprendre.
    On se détend !
    Tu me connais pas, je te connais pas et c'est bien comme ça!

    Je suis assez grand et j'ai assez d’expérience pour faire mon travail d'une certaine façon, cependant il existe d'autre façons de faire et c'est ça que je cherche.

    Si on parle bien du même article et que je l'ai pas bien compris, tu peux rester aimable ou juste m'ignorer...

  12. #12
    Membre habitué Avatar de scharly3
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Novembre 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Novembre 2008
    Messages : 121
    Points : 144
    Points
    144
    Par défaut
    Et sinon, tu as regardé du côté du DateTool de Marco Russo ?

    Sauget Charles-Henri - MCITP Business Intelligence Developer 2008 - http://www.sauget-ch.fr

  13. #13
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    698
    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 : 698
    Points : 586
    Points
    586
    Par défaut
    Citation Envoyé par scharly3 Voir le message
    Et sinon, tu as regardé du côté du DateTool de Marco Russo ?

    non mais sérieux les gars

  14. #14
    Membre éprouvé Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Points : 1 058
    Points
    1 058
    Par défaut
    Vu le début de la discussion le problème n'est pas solvable avec les DateTool.

    Vous avez une dim date (date_key, date_annee_precedente_key). Je pense qu'il faut une mesure valeur_a-1 qui utilise une fonction mdx pour utiliser date_annee_precedente_key au lieu de date_key. Linked member ou en utilisant des chaînes de charactères ...

    Je n'ai pas le niveau pour sortir la solution de tête.

    Évitons peut-être de devenir un forum de barbus. Il n'y a pas besoin de connaître les évangiles qui de plus ne sont pas forcément ultra accessibles pour le débutant.

  15. #15
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    698
    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 : 698
    Points : 586
    Points
    586
    Par défaut
    Citation Envoyé par Jester Voir le message
    Vu le début de la discussion le problème n'est pas solvable avec les DateTool.

    Vous avez une dim date (date_key, date_annee_precedente_key). Je pense qu'il faut une mesure valeur_a-1 qui utilise une fonction mdx pour utiliser date_annee_precedente_key au lieu de date_key. Linked member ou en utilisant des chaînes de charactères ...

    Je n'ai pas le niveau pour sortir la solution de tête.
    La fonction LINKMEMBER fonctionne bien mais uniquement lorsque je suis au niveau date dans le résultat...
    Si je veux un regroupement par semaines ça ne marche plus. Par regroupement je veux faire les agrégats par jours comparables...

    (j’espère que c'est compréhensible)

  16. #16
    Membre éprouvé Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Points : 1 058
    Points
    1 058
    Par défaut
    Avec un scope du genre quand on est pas sur une granularité date, tu force à cherche les valeur de granularité date puis à agréger ensuite seulement

    scope([Measure].[A], [Date].[Date].[All])
    THIS = aggregate([Date].[Date].children, [Measure].[A])

  17. #17
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    698
    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 : 698
    Points : 586
    Points
    586
    Par défaut
    Citation Envoyé par Jester Voir le message
    Avec un scope du genre quand on est pas sur une granularité date, tu force à cherche les valeur de granularité date puis à agréger ensuite seulement

    scope([Measure].[A], [Date].[Date].[All])
    THIS = aggregate([Date].[Date].children, [Measure].[A])
    Je comprend pas très bien, tu pourrais me réexpliquer comme si j'étais un demeuré ?

  18. #18
    Membre éprouvé Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Points : 1 058
    Points
    1 058
    Par défaut
    C'est pas forcément limpide dans ma tête alors ...

    L'idée c'est que tu as un mapping jour, jour année -1. Donc au niveau de la semaine ça ne marche pas car tu n'as pas de mapping semaine, semaine année -1. L'idée c'est que quand tu demandes une semaine, tu commences par la décomposer en jours. Tu cherches les jours A-1 (ce qui est possible avec le mapping) puis tu fais la somme et ça te donne la valeur pour la semaine.

    aggregate([Date].[Date].children, [Measure].[A])

    Va faire cette décomposition, en cherchant la valeur pour chaque couple (jour, mesure). Aggregate va ensuite faire la somme (ou l'opérateur d’agrégat du moins). Le scope([Measure].[A], [Date].[Date].[All]) , c'est pour dire que on ne fait ce travail que lorsqu'on est sur l'indicateur A et qu'il n'y a pas de date de sélectionnée.

    PS : par contre le [Date].[Date].children je me demande s'il ne va pas prendre toutes les dates indépendamment des filtres sur les semaines, ... je ne me souvient plus.

  19. #19
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    698
    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 : 698
    Points : 586
    Points
    586
    Par défaut
    Citation Envoyé par Jester Voir le message
    C'est pas forcément limpide dans ma tête alors ...

    L'idée c'est que tu as un mapping jour, jour année -1. Donc au niveau de la semaine ça ne marche pas car tu n'as pas de mapping semaine, semaine année -1. L'idée c'est que quand tu demandes une semaine, tu commences par la décomposer en jours. Tu cherches les jours A-1 (ce qui est possible avec le mapping) puis tu fais la somme et ça te donne la valeur pour la semaine.

    aggregate([Date].[Date].children, [Measure].[A])

    Va faire cette décomposition, en cherchant la valeur pour chaque couple (jour, mesure). Aggregate va ensuite faire la somme (ou l'opérateur d’agrégat du moins). Le scope([Measure].[A], [Date].[Date].[All]) , c'est pour dire que on ne fait ce travail que lorsqu'on est sur l'indicateur A et qu'il n'y a pas de date de sélectionnée.

    PS : par contre le [Date].[Date].children je me demande s'il ne va pas prendre toutes les dates indépendamment des filtres sur les semaines, ... je ne me souvient plus.
    Yeah je comprend mieux.
    Pour le "PS" je vais essayer de trouver un moment pour tester cet après midi et je te dirais

Discussions similaires

  1. [Google Maps] Tri markers avec les destinations le plus proches
    Par Rhino Onizuka dans le forum APIs Google
    Réponses: 22
    Dernier message: 12/02/2014, 05h57
  2. Réponses: 2
    Dernier message: 28/12/2012, 14h22
  3. Réponses: 11
    Dernier message: 04/03/2012, 19h12
  4. Réponses: 1
    Dernier message: 07/07/2009, 14h45
  5. Comparer l'enregistrement avec le suivant ...
    Par psyco2604 dans le forum ASP
    Réponses: 3
    Dernier message: 01/06/2004, 17h40

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