|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Adrien MARLINGEContrôleur de gestion RH Inscription : septembre 2011 Messages : 21 ![]() |
Bonjour à tous,
Je fais appel à vos connaissances car j’ai écumé de nombreux posts sans trouver de réponses à ma question… Je travaille sur Deski XiR2 dans un univers Ressources Humaines, et dans de nombreuses requêtes j’ai besoin sur un même tableau d’observer, au dernier jour de chaque mois, les différents éléments relatifs à la carrière d’un agent : par exemple, son type de contrat de travail, son poste, sa classification… Exemple sur le type de contrat de travail : ____________31/01/11____ 28/02/11____31/03/11 Agent 001 : ___CDD_________CDD_________CDI Agent 002 : _STAGIAIRE______CDD_________CDI … En admettant que je souhaite monter la requête à partir de l’exemple précédent, j’ai à ma disposition les dimensions suivantes : - Matricule - Nom - Prénom - Type de contrat - Date de début de contrat - Date de fin de contrat Mais aucun indicateur, seulement des informations alphanumériques à retrourner. Je précise que j’ai à ma disposition le Designer. J’ai d’ailleurs réalisé un calendrier par le biais d’une table dérivée et ajouté les dimensions ‘JOURID’, ‘ANNEE’, ‘MOIANNEE’… comme expliqué dans un autre sujet, mais je dois être bien loin du chemin à suivre car le résultat est proche de néant. Je ne suis même pas sûr de l’utilité d’avoir créé une telle table, n’ayant pas su à quoi relier le champ ‘JOURID’ dans la jointure externe… D’avance un grand merci pour aide ! |
|
|
00
|
|
|
#2 |
![]() ![]() Thomas CochinConsultant en Business Intelligence Inscription : juin 2009 Messages : 3 281 ![]() |
Bonjour,
Bon point : tu as tous les éléments pour obtenir ce que tu souhaites (ou presque). En fait, la table calendrier sera très utile dans ce cas, mais il faudra s'assurer de plusieurs choses :
Et dans les objets de résultat, il faudra ramener l'identifiant de l'employé, JOUR_ID, ainsi que le type de contrat. Il ne restera plus ensuite qu'à créer le tableau croisé.
__________________
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 ![]() |
Merci beaucoup de cette réponse rapide!
Etant plutot novice dans le maniement du langage SQL, je sèche un peu devant la tâche à accomplir... Pour créer ma table dérivée, j'ai utilisé le code suivant : Code :
- il parait effectivement très interessant de la rendre dynamique, afin d'interroger les années précédentes! j'ai pu déduire qu'il fallait utiliser une fonction SYSDATE, mais toujours pareil, mon manque de technicité dans le domaine me bride rapidement... |
||
|
|
00
|
|
|
#4 | ||
![]() ![]() Thomas CochinConsultant en Business Intelligence Inscription : juin 2009 Messages : 3 281 ![]() |
En fait, la formule est déjà dynamique (il est fort ce Bruno
Elle part du 01/01/2011 jusqu'au 31/12 de l'année en cours. Donc, si tu veux qu'elle commence plus tôt, il faut changer toutes les occurrences de "20110101" pour y appliquer l'année de ton choix. Ensuite, pour le dernier jour du mois, il faut effectivement rajouter une fonction last_day : Code :
__________________
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
|
|
|
#5 |
|
Invité régulier
![]() Adrien MARLINGEContrôleur de gestion RH Inscription : septembre 2011 Messages : 21 ![]() |
On progresse!! Le résultat obtenu n'est encore pas tout à fait celui escompté : l'Univers sur lequel je travaille est de type 'historique', c'est à dire qu'il retourne toute la chronologie des éléments d'une carrière d'un salarié.
Dans notre cas, les types de contrat : Par exemple, pour 'Monsieur MACHIN', qui était en CDD du 01/01/2011 au 31/03/2011, puis en CDI à compter du 01/04/2011, il retourne les données sous cette forme : __________________31 janv___28 fev__31 mars__30 avr___31 mai___30 juin ... Monsieur MACHIN_____CDD_____CDD_____CDD_____CDD_____CDD_____CDD ... Monsieur MACHIN_____CDI______CDI_____CDI______CDI_____CDI______CDI ... au lieu de : __________________31 janv___28 fev__31 mars__30 avr___31 mai___30 juin ... Monsieur MACHIN_____CDD_____CDD_____CDD_____CDI_____CDI_____CDI ... Dans les conditions de la requête, lorsque j'ajoute : <Date de fin de contrat> 'Non renseigné', il me retourne les données sous cette forme : __________________31 janv___28 fev__31 mars__30 avr___31 mai___30 juin ... Monsieur MACHIN_____(vide)___(vide)___(vide)_____CDI_____CDI_____CDI ... Merci de ton aide! |
|
|
00
|
|
|
#6 |
![]() ![]() Thomas CochinConsultant en Business Intelligence Inscription : juin 2009 Messages : 3 281 ![]() |
Tu as bien créé la jointure entre la table calendrier et la table des infos employés ?
__________________
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
|
|
|
#7 |
|
Invité régulier
![]() Adrien MARLINGEContrôleur de gestion RH Inscription : septembre 2011 Messages : 21 ![]() |
Oui, sous cette forme la :
Code :
CALENDAR.JOURID BETWEEN RHB_AGT_POS.DATEDEBUT AND RHB_AGT_POS.DATEFIN... |
|
|
00
|
|
|
#8 |
![]() ![]() Thomas CochinConsultant en Business Intelligence Inscription : juin 2009 Messages : 3 281 ![]() |
Mmmmm... C'est bizarre. A la rigueur, il t'aurait renvoyé ça :
__________________31 janv___28 fev__31 mars__30 avr___31 mai___30 juin ... Monsieur MACHIN______CDD_____CDD_____CDD_____(vide)___(vide)___(vide)... Monsieur MACHIN_____(vide)___(vide)___(vide)_____CDI_____CDI_____CDI ... ... J'aurais compris. Mais là, on dirait qu'il ne prend pas en compte la jointure. Peux-tu vérifier si l'univers a bien été sauvegardé, s'il n'y a pas un chevauchement dans les périodes dans la table pour Monsieur Machin et enfin, peux-tu quitter et relancer BO avant de ré-exécuter ta requête ?
__________________
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
|
|
|
#9 |
|
Invité régulier
![]() Adrien MARLINGEContrôleur de gestion RH Inscription : septembre 2011 Messages : 21 ![]() |
Bien vu, après redémarrage il retourne les données comme tu viens de l'écrire !
__________________31 janv___28 fev__31 mars__30 avr___31 mai___30 juin ... Monsieur MACHIN______CDD_____CDD_____CDD_____(vide)___(vide)___(vide)... Monsieur MACHIN_____(vide)___(vide)___(vide)_____CDI_____CDI_____CDI ... |
|
|
00
|
|
|
#10 |
![]() ![]() Thomas CochinConsultant en Business Intelligence Inscription : juin 2009 Messages : 3 281 ![]() |
OK, on touche au but.
En fait, il te crée deux lignes car il y a plusieurs lignes pour chaque employé et que <Type de contrat> est une dimension. Pour palier le problème, dans le corps de ton tableau, remplaces : par : Je sais, c'est tarabiscoté...
__________________
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
|
|
|
#11 |
|
Invité régulier
![]() Adrien MARLINGEContrôleur de gestion RH Inscription : septembre 2011 Messages : 21 ![]() |
Tordu, mais vraiment efficace!!! Quel talent...
Dernière petite interrogation : Avec un objet dimension on peut effectuer des regroupements. Pour faire la même chose avec un indicateur, je suis obligé de passer par des 'Si ... DansListe...Alors...Sinon' ? Ou est-il possible d'effectuer le groupement en premier : <REGR_type de contrat>, puis de faire un Max.(<REGR_type de contrat>) ? |
|
|
00
|
|
|
#12 |
![]() ![]() Thomas CochinConsultant en Business Intelligence Inscription : juin 2009 Messages : 3 281 ![]() |
Je te conseille la deuxième solution : d'abord faire le regroupement sur ta dimension et ensuite utiliser le Max().
En fait, ici tu peux le faire comme ça car il s'agit d'un "faux" indicateur, il est créé uniquement à cause du max. Mais si l'objet d'origine était un indicateur (défini comme cela dans l'univers), il aurait fallu passer par Si..Alors..Sinon
__________________
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
|
|
|
#13 |
|
Invité régulier
![]() Adrien MARLINGEContrôleur de gestion RH Inscription : septembre 2011 Messages : 21 ![]() |
C'est du grand art... ça fonctionne parfaitement.
Encore un grand merci pour ton aide!
|
|
|
00
|
|
|
#14 |
|
Invité régulier
![]() Adrien MARLINGEContrôleur de gestion RH Inscription : septembre 2011 Messages : 21 ![]() |
Une petite dernière pour la route...
Voyant que cela fonctionnait avec la table 'type de contrat', j'ai voulu faire de même avec les différentes tables composant les caractéristiques d'un salarié, comme par exemple les tables 'temps de travail', 'service' ou encore 'poste' (chacune possédant à peu près les mêmes champs : type de..., date de début..., date fin...) Pour chacune, j'ai effectué la même jointure que sur le modèle précédent (between...and...) sur la table 'CALENDAR', mais à l'exécution de la requête, il me retourne le message d'erreur suivant : 'Erreur lors de la génération du SQL : Combinaison incompatible d'objet (QP0004)' Où est l'erreur? |
|
|
00
|
|
|
#15 |
![]() ![]() Thomas CochinConsultant en Business Intelligence Inscription : juin 2009 Messages : 3 281 ![]() |
Le problème vient du fait de tout mettre dans une seule requête : sans doute y a-t-il des boucles dans l'univers.
Dans ce cas deux choix :
__________________
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
|
|
|
#16 |
|
Invité régulier
![]() Adrien MARLINGEContrôleur de gestion RH Inscription : septembre 2011 Messages : 21 ![]() |
Je vois le problème, et je penche pour la deuxième solution...
Encore merci!!! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com