Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Autres
Autres Autres logiciels d'informatique décisionnelle, de statistiques, générateurs d’états ou outils infocentre : EpiInfo, FreeReport, FastReport, Hyperion, JPivot, QuickReport, Mondrian, ReportBuilder, Stata, Spad, Spss, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/03/2011, 17h07   #1
Membre du Club
 
Homme
Consultant SI
Inscription : février 2011
Messages : 45
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France

Informations professionnelles :
Activité : Consultant SI
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 45
Points : 47
Points : 47
Par défaut Recherche des membres contenant une chaine

Bonjour,

Dans un calc script, je voudrais écrire un FIX qui me placerait sur certains membres contenant une chaine.

Disons que j'ai 3 années (2008 à 2010) de 12 mois.

Disons que je veux faire un FIX sur les mois de janvier.

Donc le fix portera au final sur 2008_jan , 2009_jan et 2010_jan.

Il y aurait pas un moyen d'écrire : "Les membres dont le nom contient "jan"" ?


Merci d'avance,
jsonline est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 18h34   #2
Invité de passage
 
Inscription : mai 2008
Messages : 3
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 3
Points : 3
Points : 3
Sauf erreur de ma part, il existe une fonction @SUBSTRING qui permet d'extraire une partie du nom du membre mais cela t'obligerai a non pas faire un FIX mais plutot a utiliser le IF(@SUBSTRING(Année,6,3)="Jan" mais je ne suis pas sur que cela soit tres performant. J'opterai plutot pour la solution de creer une dimension Annees et une dimension Mois afin de croiser plus facilement les données...
Bien cordialement
bulgom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 10h08   #3
Membre du Club
 
Homme
Consultant SI
Inscription : février 2011
Messages : 45
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France

Informations professionnelles :
Activité : Consultant SI
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 45
Points : 47
Points : 47
En fait quand j'utilise un IF dans mon FIX, j'ai l'erreur essbase suivante :

Error: 1012061 The CALC command [IF] can only be used within a CALC Member Block


PS : Et j'ai la même erreur si j'utilise le IF seul.
jsonline est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 15h21   #4
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

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

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 544
Points : 9 544
Citation:
Envoyé par jsonline Voir le message
Donc le fix portera au final sur 2008_jan , 2009_jan et 2010_jan.

Il y aurait pas un moyen d'écrire : "Les membres dont le nom contient "jan"" ?
Code Calc Script :
fix(@match(dim_temps, "????_jan"))
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 15h26   #5
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

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

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 544
Points : 9 544
Citation:
Envoyé par bulgom Voir le message
...
IF(@SUBSTRING(Année,6,3)="Jan" mais je ne suis pas sur que cela soit tres performant.
Citation:
Envoyé par jsonline Voir le message
En fait quand j'utilise un IF dans mon FIX, j'ai l'erreur essbase suivante :

Error: 1012061 The CALC command [IF] can only be used within a CALC Member Block
Le IF n'est permis que dans les formules... ou dans leur équivalent en script, le calc member block. Supposons que tu veuilles calculer ton indicateur TOTO, la syntaxe à utiliser pour t'autoriser le IF est :

Code :
1
2
3
TOTO (
  TOTO = IF (@SUBSTRING(Année,6,3) == "Jan") blabla ;
)
Mais le FIX est préférable à tous points de vue.

PS : attention aussi au double égal == à utiliser pour les comparaisons.
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 17h36   #6
Membre du Club
 
Homme
Consultant SI
Inscription : février 2011
Messages : 45
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France

Informations professionnelles :
Activité : Consultant SI
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 45
Points : 47
Points : 47
fix(@match(Année, "????_jan")) compile bien.

Je lancerais le script demain matin, et je vous dis si cela fait bien ce qui est attendu.

Par la voie du IF, j'ai une nouvelle erreur :

Code :
1
2
3
4
5
En écrivant :
MY_INDICATOR (
  MY_INDICATOR = IF (@SUBSTRING(Année,6,3) == "Jan") 
         blabla ;
)
Error: 1200354 Error compiling formula for [MY_INDICATOR] (line 25): expected type [NUMBER] found [STRING] ([@SUBSTRING]) in function [operator @EQ]

avec MY_INDICATOR : le nom de mon indicateur.


J'ai l'impression qu'il considére l'année en number alors que c'est (évidemment) du text au niveau mois.

Ca se confirme d'ailleurs car si je tente :

Code :
1
2
3
4
MY_INDICATOR (
  MY_INDICATOR = IF (Année == "Jan") 
         blabla ;
)
Il me répond :

Citation:
Error: 1200354 Error compiling formula for [MY_INDICATOR] (line 24): expected type [NUMBER] found [STRING] (["Jan"]) in function []
jsonline est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 18h32   #7
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

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

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 544
Points : 9 544
Oui, en fait le IF travaille toujours sur la valeur des membres, jamais sur des métadonnées. Suite à la suggestion de bulgom, je me suis dit que le @SUBSTRING devrait arriver à le forcer, mais non.
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2011, 09h31   #8
Membre du Club
 
Homme
Consultant SI
Inscription : février 2011
Messages : 45
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France

Informations professionnelles :
Activité : Consultant SI
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 45
Points : 47
Points : 47
Pas grave.

En tous cas je te confirme que ton :
Code :
fix(@match(Année, "????_jan"))
marche bien et je marche donc résolu.
jsonline est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h48.


 
 
 
 
Partenaires

Hébergement Web