Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Business Objects > Débuter
Débuter Forum d'entraide pour débuter avec Business Object
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 12/09/2011, 15h37   #1
Invité régulier
 
Homme Adrien MARLINGE
Contrôleur de gestion RH
Inscription : septembre 2011
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Adrien MARLINGE
Localisation : France, Doubs (Franche Comté)

Informations professionnelles :
Activité : Contrôleur de gestion RH
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : septembre 2011
Messages : 21
Points : 6
Points : 6
Par défaut Retourner une dimension en fonction de la valeur la plus élevée d’un indicateur

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 !
adrien.marlinge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2011, 00h24   #2
Responsable Business Intelligence
 
Avatar de TomDuBouchon
 
Homme Thomas Cochin
Consultant en Business Intelligence
Inscription : juin 2009
Messages : 3 281
Détails du profil
Informations personnelles :
Nom : Homme Thomas Cochin
Âge : 29
Localisation : France, Seine et Marne (Île de France)

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

Informations forums :
Inscription : juin 2009
Messages : 3 281
Points : 5 703
Points : 5 703
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.
TomDuBouchon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2011, 11h22   #3
Invité régulier
 
Homme Adrien MARLINGE
Contrôleur de gestion RH
Inscription : septembre 2011
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Adrien MARLINGE
Localisation : France, Doubs (Franche Comté)

Informations professionnelles :
Activité : Contrôleur de gestion RH
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : septembre 2011
Messages : 21
Points : 6
Points : 6
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(...)
adrien.marlinge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 10h05   #4
Invité régulier
 
Homme Adrien MARLINGE
Contrôleur de gestion RH
Inscription : septembre 2011
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Adrien MARLINGE
Localisation : France, Doubs (Franche Comté)

Informations professionnelles :
Activité : Contrôleur de gestion RH
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : septembre 2011
Messages : 21
Points : 6
Points : 6
Quelqu'un aurait une petite idée...?
adrien.marlinge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 12h24   #5
Membre du Club
 
Inscription : décembre 2009
Messages : 90
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 90
Points : 45
Points : 45
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
bailet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 13h22   #6
Membre du Club
 
Inscription : avril 2009
Messages : 86
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 86
Points : 67
Points : 67
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
et
Code :
type arrêt max : =Max(<Type d'arrêt (libellé)>) Dans Bloc
Cela peut régler une partie du problème.
Cordialement.
Fichiers attachés
Type de fichier : xls ESSAI REQUETE.xls (15,5 Ko, 4 affichages)
gwena2b est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 13h42   #7
Responsable Business Intelligence
 
Avatar de TomDuBouchon
 
Homme Thomas Cochin
Consultant en Business Intelligence
Inscription : juin 2009
Messages : 3 281
Détails du profil
Informations personnelles :
Nom : Homme Thomas Cochin
Âge : 29
Localisation : France, Seine et Marne (Île de France)

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

Informations forums :
Inscription : juin 2009
Messages : 3 281
Points : 5 703
Points : 5 703
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 :
1
2
3
4
<Nb jours absences> Egal à Calcul :
Max_jours_absence,
Par un ou plusieurs objets : ID_Salarié
Toutes les valeurs du calcul
Mais du coup, je me demande si tu n'aurais pas meilleur compte de créer une table dérivée qui te ramène directement ce que tu souhaites, et de créer les objets correspondants.

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é>)
Ensuite, dans la colonne des codes d'absence, saisir la formule :
Code :
=<Code absence>(<Nb jours absences> = <maxjours>)
@bailet : pas de table dérivée pour toi : création d'un objet spécifique obligatoire
@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.
TomDuBouchon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 14h42   #8
Membre du Club
 
Inscription : avril 2009
Messages : 86
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 86
Points : 67
Points : 67
Effectivement, tu as raison tom
On en apprend tous les jours sur ce forum
gwena2b est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 18h34   #9
Invité régulier
 
Homme Adrien MARLINGE
Contrôleur de gestion RH
Inscription : septembre 2011
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Adrien MARLINGE
Localisation : France, Doubs (Franche Comté)

Informations professionnelles :
Activité : Contrôleur de gestion RH
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : septembre 2011
Messages : 21
Points : 6
Points : 6
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...
adrien.marlinge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2011, 16h08   #10
Membre habitué
 
Inscription : décembre 2008
Messages : 117
Détails du profil
Informations personnelles :
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : décembre 2008
Messages : 117
Points : 127
Points : 127
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.
Code :
1
2
 
Nom / Motif / Nb jours
Tableau 1
Code :
1
2
3
4
5
 
Nom         nombre total de jours        Nb Max d absences pour 
            d absence                    le même motif
Mr Machin        52                             45
Mme Truc        117                            112
La formule pour obtenir le nombre max d'absences du salarié ([Nom]) pour le même motif est :
Code :
1
2
 
=Max([Nb jours] Dans([Nom];[Motif])) Dans ([Nom])
La fonction Max peut s'appliquer à des chaînes, on peut formater des nombres en chaîne, et on peut concaténer les chaînes.

Refaire le calcul avec les fonctions :

Code :
1
2
 
= Max(FormatDeNombre([NbJours];"0000")+ [Motif] Dans([Nom];[Motif])) Dans ([Nom])
Cela devrait donner :

Tableau 2
Code :
1
2
3
4
5
 
Nom         nombre total de jours        Nb Max d absences pour 
            d absence                    le même motif
Mr Machin        52                         0045Accident du travail
Mme Truc        117                         0112Maternité

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 :
1
2
 
=Droite([Motif Max]; Longueur([Motif_Max])-4)
Sauf erreur de ma part ça devrait donner :

Code :
1
2
3
4
5
 
Nom         nombre total de jours        Nb Max d absences pour 
            d absence                    le même motif
Mr Machin        52                         Accident du travail
Mme Truc        117                         Maternité
Seul bémol : Un salarié absent le même nombre de jours pour deux raisons différentes. Là tu ne verras qu'un des deux motifs.


Bon courage.
dlra_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2011, 22h21   #11
Invité régulier
 
Homme Adrien MARLINGE
Contrôleur de gestion RH
Inscription : septembre 2011
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Adrien MARLINGE
Localisation : France, Doubs (Franche Comté)

Informations professionnelles :
Activité : Contrôleur de gestion RH
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : septembre 2011
Messages : 21
Points : 6
Points : 6
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!!
adrien.marlinge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2011, 10h26   #12
Invité régulier
 
Homme Adrien MARLINGE
Contrôleur de gestion RH
Inscription : septembre 2011
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Adrien MARLINGE
Localisation : France, Doubs (Franche Comté)

Informations professionnelles :
Activité : Contrôleur de gestion RH
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : septembre 2011
Messages : 21
Points : 6
Points : 6
ça a fonctionné, du 1er coup, et sans accroc...
Un grand merci!
adrien.marlinge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2011, 18h07   #13
Membre habitué
 
Inscription : décembre 2008
Messages : 117
Détails du profil
Informations personnelles :
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : décembre 2008
Messages : 117
Points : 127
Points : 127
Bonne nouvelle,

Au plaisir !
dlra_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2011, 13h07   #14
Membre du Club
 
Inscription : avril 2009
Messages : 86
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 86
Points : 67
Points : 67
Salut

j'ai essayé sur la 6.5 et cela marche également.
Trés bon travail Dira
gwena2b 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 23h58.


 
 
 
 
Partenaires

Hébergement Web