|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Adrien MARLINGEContrôleur de gestion RH Inscription : septembre 2011 Messages : 21 ![]() |
Bonjour à tous,
Dans un rapport, je dois retourner, sur une ligne par salarié, le motif principal d’absence pendant l’année. Je dispose des éléments suivants : <ID salarié> <Code absence> <Nb jours absence> Exemple : - Données brutes : ID salarié_________Code absence ____Nb jours absence Monsieur Machin__ Accident du travail__45 Monsieur Machin __Maladie ordinaire___7 Madame Truc ____Enfant malade_______5 Madame Truc ____Maternité_________112 - Résultat attendu : ID salarié_________Code absence Monsieur Machin__ Accident du travail Madame Truc ____Maternité Le palmarès ne donnant rien de concluant, et la fonction Rang pas appropriée pour conserver une ligne par salarié, je sèche un peu… D’avance merci pour votre aide ! |
|
|
00
|
|
|
#2 |
![]() ![]() Thomas CochinConsultant en Business Intelligence Inscription : juin 2009 Messages : 3 281 ![]() |
Bonjour,
Alors, le mieux pour résoudre ce genre de cas est d'appliquer une nouvelle condition dans la requête. En l'occurrence, il faudrait ajouter une condition sur l'objet "Nb jours absence", en précisant "Egal à", puis sélectionner "Calcul". De là, il sera possible de choisir de sélectionner le maximum en fonction d'un autre objet, ici "ID salarié"
__________________
Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches. Un message vous a aidé ? Votez en cliquant sur ![]() Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton ![]() Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP. |
|
00
|
|
|
#3 |
|
Invité régulier
![]() Adrien MARLINGEContrôleur de gestion RH Inscription : septembre 2011 Messages : 21 ![]() |
En suivant ces consignes, BO me revoit le message d'erreur suivant à l'éxécution :
DA0003 - Exception: DBD, ORA-01722: Nombre non valide State: N/A - Dans Objets disponibles, j'ai choisi <ID salarié> - Fonctions diponibles : 'Maximum' - Peut être calculé : 'Globalement' - Peut être calculé : 'Indépendamment des objets' - Vous pouvez comparer l'objet à : 'au moins une valeur du calcul' J'ai également essayé d'autres choix sans plus de succès... Je précise que l'indicateur <Nb de jours> est défini dans le designer sous la forme SUM(...) |
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Adrien MARLINGEContrôleur de gestion RH Inscription : septembre 2011 Messages : 21 ![]() |
Quelqu'un aurait une petite idée...?
|
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : décembre 2009 Messages : 90 ![]() |
Bonjour
Votre requête est intéressante (par salarié son type d'arrêt le + important) je voulais tester la méthode de Tom mais je suis en 5.1.9 et il ne me propose pas 'fonctions disponibles' et donc max Je passe directement de "sel un objet" à 'def le niveau de calcul" J'ai fait pleins de choix comme vous : il ne me renvoie qu'un seul salarié (c'est déjà çà) Et définir le niveau de calcul par un ou plusieurs objets : je n'arrive pas en selectionner 2 en même temps (sal et type d'arrêt) (si cela pouvait être une solution) Longueur et patience de temps.... Cordialement |
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Inscription : avril 2009 Messages : 86 ![]() |
Bonjour
ci-joint en bidouillant un peu ce que j'arrive à avoir si cela peut vous aider. après execution de ma requete avec les dimensions type d'arrêt, nom agent, durée de l'arret, j'ai posé un maitre sur le nom. Ensuite j'ai crée 2 colonnes : durée max avec en formule : Code :
=Max(<Durée de l'arrêt sur période>)Dans Bloc Code :
type arrêt max : =Max(<Type d'arrêt (libellé)>) Dans Bloc Cordialement.
|
|
|
00
|
|
|
#7 | ||
![]() ![]() Thomas CochinConsultant en Business Intelligence Inscription : juin 2009 Messages : 3 281 ![]() |
OK,
Alors, ce n'est pas un problème de version, mais d'objet (toutes les options sont dispos sur la v5) En fait, la définition du calcul Max, ou autre, ne peut être appliqué sur indicateur... Effectivement je n'avais à ce jour utiliser ce système que pour des dates en dimension... Bref, cela va poser un problème, car on a aucun objet à comparer... Dans la logique il aurait fallu un objet "Max_jours_absence" pour faire la comparaison. Du coup il aurait fallu créer la condition suivante : Code :
Sinon, il y aurait peut être une autre solution mais je ne me souviens jamais si c'est apparu à partir de la XIR2 ou la XI3... Donc à tester : Dans le tableau, créer un objet (nommons le "maxjours") avec la formule : Code :
=Max(<nb jours absences>) Dans (<ID_Salarié>) Code :
=<Code absence> Où (<Nb jours absences> = <maxjours>) @gwena2b : le max(<libellé>) renverra le libellé max, et pas le libellé en fonction du nombre max.
__________________
Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches. Un message vous a aidé ? Votez en cliquant sur ![]() Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton ![]() Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP. |
||
|
00
|
|
|
#8 |
|
Membre du Club
![]() Inscription : avril 2009 Messages : 86 ![]() |
Effectivement, tu as raison tom
On en apprend tous les jours sur ce forum
|
|
|
00
|
|
|
#9 |
|
Invité régulier
![]() Adrien MARLINGEContrôleur de gestion RH Inscription : septembre 2011 Messages : 21 ![]() |
Tom je pense que ta formule fonctionne à partir de XR3, moi j'ai un message d'erreur...
C'est dommage, je passe à la 3 en novembre et j'ai cette enquête à rendre la semaine prochaine! ![]() Tu parlais également d'une table dérivée, à quoi pourrais ressembler le code? En tout cas merci à tous pour votre intérêt, si ça ne marche pas je ferai un aller-retour par Excel... |
|
|
00
|
|
|
#10 | ||||||||||||
|
Membre habitué
![]() Inscription : décembre 2008 Messages : 117 ![]() |
Bonjour,
J'ai peur de passer un peu tard. J'ai compris que tu disposes d'un indicateur qui donne le nombre de jours d'absence et tu veux savoir la raison majeure de l'absence du salarié. Pour résoudre ce problème, j'essaierai cela. Euh ..., je ne sais pas expliquer simplement on va y aller en 2 fois. Dans la requête on a trois objets. Tableau 1 Code :
Code :
Refaire le calcul avec les fonctions : Code :
Tableau 2 Code :
Tu transformes ta formule en variable => [Motif max] (plus facile pour la suite). Le "0000" dans format de jour sert a s'assurer que le nombre de jours sera bien codé sur 4 caractères. Deux raisons pour cela : 1 : Si tu fais tes stats par année, il n'y aura jamais plus de 366 jours d'absence et avec des 0 en début de nombre tu es certain que tes chaînes seront classées comme des nombres. Donc le Max te ramènera la bonne valeur. 2 : Si tu ne veux pas voir les nombres dans ton tableau tu fais : Code :
Code :
Bon courage. |
||||||||||||
|
|
00
|
|
|
#11 |
|
Invité régulier
![]() Adrien MARLINGEContrôleur de gestion RH Inscription : septembre 2011 Messages : 21 ![]() |
L'idée me paraît tout à fait cohérente...je suis en vacances la semaine prochaine, je teste ça en rentrant.
Merci de ton aide!! |
|
|
00
|
|
|
#12 |
|
Invité régulier
![]() Adrien MARLINGEContrôleur de gestion RH Inscription : septembre 2011 Messages : 21 ![]() |
ça a fonctionné, du 1er coup, et sans accroc...
Un grand merci! |
|
|
00
|
|
|
#13 |
|
Membre habitué
![]() Inscription : décembre 2008 Messages : 117 ![]() |
Bonne nouvelle,
Au plaisir ! |
|
|
00
|
|
|
#14 |
|
Membre du Club
![]() Inscription : avril 2009 Messages : 86 ![]() |
Salut
j'ai essayé sur la 6.5 et cela marche également. Trés bon travail Dira
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com