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 :

Idée de filtrage sur deux dates "liées"


Sujet :

SSAS

  1. #1
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut Idée de filtrage sur deux dates "liées"
    Voilà j'ai eu une idée, je ne suis pas sur que ce soit l'idée du siècle ni que ça marche et c'est pour ça je veux être conseillé.

    J'ai une table de fait qui a les élément suivant
    tdf
    -----
    id
    mesure
    date1
    date2

    date 1 et date 2 sont liées l'une à l'autre par la restitution utilisateur suivante :
    L'utilisateur veut faire un TDC en mettant en colonne douzes mois glissants de mois qui correspondent à la fois à date1 et date2. Le hic c'est que si on a deux dimensions dates différentes, il se trouvera avec un produit scalaire des 12X12 mois et c'est pas tout à faire ce qui est attendu. Donc l'idée serait de "lier" les deux dates dans le cube.

    J'ai pensé à la solution suivante :
    Je fais deux vues exactement de la même définition sur la table de fait (vtdf1 et vtdf2) et je créé deux groupes de mesures sur ces deux vues

    J'aurai une relation dans le cube suivant


    vtdf1 vtdf2
    vtdf2 id
    date date1 date2


    Si je filtre dans un TCD sur date, cela filtrera les lignes de la vue 2 sur la date2 et aussi les lignes de la vue 1 sur la date1. Comme la vue 1 est liée à la vue 2 par l'id dans le groupe de mesure vtdf1, les lignes de la vue 1 seront filtrés par les lignes de la vue 2 elle même filtrée sur la date2. Donc au final en filtrant sur date on serait filtré sur date1 et date2.

    Est ce une bonne idée et sinon y a t'il mieux ? Et déjà est ce que mon raisonnement est juste ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Dans le cas où date1 est différent de date2, ca ne remontera pas la ligne concernée, non ?

    Ou alors je n'ai pas bien compris le raisonnement ... Mais je vais suivre les avis, ca m'intéresse s'il y a une solution.

  3. #3
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut
    Je suis d'accord quand tu filtres une date unique du calendrier : si date1 <> date2 ça ne remonte rien ça me semble logique.
    En revanche si le filtre est une plage de date (un mois disons), selon moi on aurait une population qui est l'intersection des date1 concernées avec les dates 2 concernées

  4. #4
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut
    Marche pas

  5. #5
    Membre éclairé Avatar de GeekMokona
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Novembre 2011
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Oise (Picardie)

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

    Informations forums :
    Inscription : Novembre 2011
    Messages : 327
    Points : 817
    Points
    817
    Par défaut
    Quel est ton besoin ?

    -Vider les cellules correspondant au croisement entre d'2 date différentes entre 2 dim Temps et ca pour toutes les requetés faites sur ton cube ?
    Dans ce cas il faut regarder au niveau du Calc Script du cube et des scope et le MDX de ci-dessous

    - Juste sur un rapport N'afficher que les Dates égales sur 2 dim Temps ?
    Dans ce cas c'est en MDX qu'il faut traité le problème .... exemple :
    - NON EMPTY ....
    - FILTER sur les mesures calculé sur les clés des attributs date de chacune des dimensions temps
    Séverine Capon - Consultante MS BI
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Merci de dés que le commentaire vous a aidé ou de marquer si votre problème est résolu

  6. #6
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut
    Non c'est pas du tout ça.
    Je veux laisser mon utilisateur faire tout seul son rapport sur Excel de la façon suivante :
    En ligne il filtre les deux dates.
    Et en cellule il a les mesures filtrés sur les deux dates.

    Evidemment il ne filtra pas une date donnée mais probablement le mois ou l'année.



    Voilà le requête que je veux que mon utilisateur fasse en autonome
    Mois Mesure
    Mois 1 Mesure filtrée sur Date 1 appartient à Mois 1 ET Date 2 appartient à Mois 1
    Mois 2 Mesure filtrée sur Date 1 appartient à Mois 2ET Date 2 appartient à Mois 2

  7. #7
    Membre éclairé Avatar de GeekMokona
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Novembre 2011
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Oise (Picardie)

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

    Informations forums :
    Inscription : Novembre 2011
    Messages : 327
    Points : 817
    Points
    817
    Par défaut
    Donc une des solutions ,via le calc Script (onglet calculation ) du cube ...

    Via un Scope qui vide toutes les Cellules correspondant au filter suivant

    Create Member Measures.Date1 as [DIM Temps1].[Date].CurrentMember.Properties("KEY")

    Create Member Measures.Date2 as [DIM Temps2].[Date].CurrentMember.Properties("KEY")

    SCOPE ( Filter({[DIM Temps1].[Date].[Date].AllMembers * [DIM Temps2].[Date].[Date].AllMembers }, Measures.Date1 <> Measures.Date2 ));
    this = Null ;
    End SCOPE ;
    Séverine Capon - Consultante MS BI
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Merci de dés que le commentaire vous a aidé ou de marquer si votre problème est résolu

  8. #8
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut
    OK j'ai jamais encore utilisé les SCOPE ni les commandes de scripts (je me suis arrêté au mesures calculées).

    Bon j'ai essayé de faire comme vous m'avez proposé mais je me trouve devant des problème.

    Je tiens à dire que pour le moment je n'ai pas encore créé de table temps classiques : j'ai juste faire une dimension Date qui contient les attributs Mois et Annee et Pk Date (qui est la clé primaire).
    Dans mon cas de figure la dimension [DIM Temps1] correspond à ma dimension [Date 1] et de même pour [DIM Temps2].
    Donc l'adaptation de votre script donne ceci :
    Dans une nouvelle commande de script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Create Member Measures.D1 as [Date 1].[Pk Date].CurrentMember('KEY');
     
    Create Member Measures.D2 as [Date 2].[Pk Date].CurrentMember('KEY');
     
    SCOPE ( Filter({[Date 1].[Pk Date].[Pk Date].AllMembers * [Date 2].[Pk Date].[Pk Date].AllMembers }, Measures.D1 <> Measures.D2 ))
      this = Null ;
    End SCOPE ;
    Je sais pas si ce que vous avez mis dans la chaine 'KEY' est quelque chose qu'il faut mettre en dur ou c'est à appliquer dans mon cas en fonction de ma dimension et dans ce cas je ne sais pas ce qu'il faut mettre à l'intérieur.

    Sinon j'avais une petite vague rouge sur la deuxième instruction de Create Member, j'ai donc supposé qu'il fallait mettre des points virgules
    Mais même comme ça, j'ai une petite vague rouge en dessous de scope et si je clique sur le bouton Verifier la syntaxe j'ai un Syntaxe incorrect.

    Désolé d'être bas de plafond mais j'avoue que le SCOPE c'est mystérieux pour moi car je n'ai jamais compris comment ça s'utilise.

  9. #9
    Membre éclairé Avatar de GeekMokona
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Novembre 2011
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Oise (Picardie)

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

    Informations forums :
    Inscription : Novembre 2011
    Messages : 327
    Points : 817
    Points
    817
    Par défaut
    Désolé après relecture j'ai fait quelques corrections dans mon code de post précèdent ... d'où les erreurs ...
    La Chaine de caractère KEY est a ne pas Changé elle indique a la Fonction PROPERTIES qu'elles propriété du membre retourné dans notre cas nous souhaitons retourner dans les 2 cas la Clés d'attribut
    Séverine Capon - Consultante MS BI
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Merci de dés que le commentaire vous a aidé ou de marquer si votre problème est résolu

  10. #10
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut
    Désolé d'être chiant mais je pense qu'il y a toujours un problème dans l'instruction SCOPE.
    "Syntaxe pour this est incorrect"

  11. #11
    Membre éclairé Avatar de GeekMokona
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Novembre 2011
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Oise (Picardie)

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

    Informations forums :
    Inscription : Novembre 2011
    Messages : 327
    Points : 817
    Points
    817
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Create Member Measures.Date1 as [DIM Temps1].[Date].CurrentMember.Properties("KEY");
     
     Create Member Measures.Date2 as [DIM Temps2].[Date].CurrentMember.Properties("KEY");
     
     SCOPE ( Filter({[DIM Temps1].[Date].[Date].AllMembers * [DIM Temps2].[Date].[Date].AllMembers }, Measures.Date1 <> Measures.Date2 ));
     this = Null ;
     End SCOPE ;
    SI KO mais mois une impression écran ...
    Séverine Capon - Consultante MS BI
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Merci de dés que le commentaire vous a aidé ou de marquer si votre problème est résolu

  12. #12
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut
    Nom : Probleme.PNG
Affichages : 129
Taille : 88,1 KoBonjour,
    Ci joint,
    J'ai essayé de mettre le plus d'info possible

    Cordialement,

  13. #13
    Membre éclairé Avatar de GeekMokona
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Novembre 2011
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Oise (Picardie)

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

    Informations forums :
    Inscription : Novembre 2011
    Messages : 327
    Points : 817
    Points
    817
    Par défaut
    Il te manque un ; après les 2 Parenthéses fermante et avant le this
    Séverine Capon - Consultante MS BI
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Merci de dés que le commentaire vous a aidé ou de marquer si votre problème est résolu

  14. #14
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut
    Oui je m'en suis rendu compte après coup. J'ai corrigé mais j'ai quand même des erreurs :

    Nom : Probleme1.PNG
Affichages : 214
Taille : 67,0 Ko

  15. #15
    Membre éclairé Avatar de GeekMokona
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Novembre 2011
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Oise (Picardie)

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

    Informations forums :
    Inscription : Novembre 2011
    Messages : 327
    Points : 817
    Points
    817
    Par défaut
    Bon si j'écrivais du MDX pour un calc script ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Create Member CURRENTCUBE.Measures.D1 as [Date 1].[Pk Date].CurrentMember.Properties('KEY') , VISIBLE = 0 , ASSOCIATED_MEASURE_GROUP = 'a remplir par tes soin';
     
    Create Member CURRENTCUBE.Measures.D2 as [Date 2].[Pk Date].CurrentMember.Properties('KEY'), VISIBLE = 0 , ASSOCIATED_MEASURE_GROUP = 'a remplir par tes soin';
     
    SCOPE(Filter({[Date 1].[Pk Date].[Pk Date].AllMembers * [Date 2].[Pk Date].[Pk Date].AllMembers }, Measures.D1 <> Measures.D2 ));
      this = Null ;
    End SCOPE ;
    Séverine Capon - Consultante MS BI
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Merci de dés que le commentaire vous a aidé ou de marquer si votre problème est résolu

  16. #16
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut
    J'ai l'impression qu'il y a des balises à mettre avant et après l'écriture d'un script (ici un scope) parce que si je passe en mode formulaire j'ai 3 commandes scripts 1 Pour SCOPE, 1 pour this = null et un POUR END SCOPE (en fait à chaque .

    En mode script avec les erreurs :
    Nom : Probleme2.PNG
Affichages : 91
Taille : 103,5 Ko

    Et en mode formulaire
    Nom : Probleme3.PNG
Affichages : 76
Taille : 4,1 Ko

  17. #17
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut
    Il faut un paramétrage spécifique pour utiliser la fonction SCOPE ou une version particulière de SSAS ?

    L'erreur est
    "La forme arbritaire des ensembles n'est pas autorisée dans le contexte actuel."

Discussions similaires

  1. [WD14] Filtrage entre deux dates
    Par LuckyLuke56 dans le forum WinDev
    Réponses: 17
    Dernier message: 28/10/2011, 18h31
  2. Utilisation de filtre sur deux dates
    Par cognosien dans le forum Cognos
    Réponses: 1
    Dernier message: 01/10/2011, 18h16
  3. [Debutant] [9iR2] Filtrage sur 2 dates
    Par in dans le forum SQL
    Réponses: 9
    Dernier message: 14/08/2007, 09h42

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