|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mars 2006 Messages : 5 ![]() |
Bonjour,
Je suis débutant dans Cognos Report Studio et là j'avoue que je sèche un peu sur 2 problèmes ! Puis l'aide dans Cognos est vraiment très minime, on ne trouve pas ce qu'on veut, aucun exemple complet, bref la galère... Voici une base d'exemple pour exposer un peu mon cas : Équipement | Date heure d'intervention | Date heure de fin | HS ? | Agent | Prochaine panne Equipement 1 | 01/01/2011 10:45 | 01/01/2011 15:45 | Oui | Christophe | 03/01/2011 9:24 Equipement 2 | 01/01/2011 11:47 | 02/01/2001 9:21 | Oui | Daniel | Equipement 1 | 03/01/2011 9:24 | 03/01/2011 18:14 | Oui | Jean | Equipement 3 | 04/01/2011 8:14 | 04/01/2011 15:35 | Non | Jean | Equipement 2 | 05/01/2011 11:47 | 05/01/2001 18:14 | Oui | Christophe | Equipement 3 | 06/01/2011 8:14 | 06/01/2011 15:41 | Non | Christophe | Oui désolé c'est moche en affichage mais je fais ce que je peux ^^ On parle donc ici d'intervention sur des équipements par différent agents, avec une date et heure de début d'intervention, et une date et heure de fin d'intervention. Mes variables d'invite : Nom de l'agent, date début, date de fin. Question 1 : Comment lister toutes les interventions sur les équipements sur lequel un agent en particulier est intervenu, sans que ce ne soit seulement ses interventions à lui ? Je ne peux bien sûr pas filtrer en mettant quelque chose du genre [Agent] = ?invite_agent? ! Sinon j'aurai seulement les interventions de cet agent en particulier, alors que moi je veux toutes les interventions sur les équipements sur lesquels cet agent est intervenu, peu importe que ce soit lui qui est intervenu dessus ou pas. J'espère que je me fais comprendre ^^ Question 2 : Pour la colonne dernière panne, je veux savoir uniquement pour les interventions de l'agent que j'ai choisi dans l'invite, la date de la prochaine intervention sur cet équipement, uniquement quand le champs "HS ?" est sur oui. Peu importe que ce soit lui ou pas qui est intervenu sur la prochaine panne. Dans l'exemple ci-dessus, disons qu'on ai choisi l'agent Christophe sur la période du 01/01/2011 au 06/01/2011. La seule colonne "prochaine panne" remplie est donc la première intervention que cet agent a réalisé sur l'équipement 1, vu qu'il y a eu une panne sur cet équipement plus tard dans cette période. Au final je créerai une autre colonne qui fera la différence entre la date de fin d'intervention et date de prochaine panne pour mesurer l'écart entre les 2 et faire une synthèse. Voilà j'espère que je me suis fais comprendre et que je ne me suis pas trop emmêle dans mes explications ^^ Merci de votre aide. |
|
|
00
|
|
|
#2 | ||||
|
Membre Expert
![]() Vincent OPNI Inscription : décembre 2004 Messages : 1 668 ![]() |
Bonsoir
Citation:
Mais heureusement, il y a ça: Citation:
Ce n'est pas un problème de filtre a mon sens, mais un problème de données / organisation de données. Pour illustrer uniquement: Il te faudrait par exemple d'un côté un ensemble de résultats qui te donne de manière distincte le nom des intervenants et le nom des équipements sur lesquels ils sont intervenus au moins une fois (valeurs distinctes), on aurait donc par exemple 2 colonnes "ref_agent" et "ref_materiel" et c'est sur cet ensemble que tu pourrais appliquer ton filtre / sélection d'un agent. Tu joins ensuite a cet ensemble la liste de toutes les interventions qui correspondent a ce matériel, matériel sur lequel sera intervenu au moins une fois l'agent X sélectionné. (Edit: j'ai oublié -> a condition que la jointure ne s'effectue que sur le nom de matériel) Pour la deuxième question, la encore je dirais qu'il faut remonter au niveau données / SQL mais tout dépends de ce a quoi tu as accès. La première chose a laquelle je pense (sous Oracle) c'est un "LAST_VALUE() ... partition by ... order by ... rows between ..."; correctement utilisé, il renverra une nouvelle colonne qui te donne l'intervention date+1 par couple matériel / agent. En espérant t'aider, @+
__________________
Citation:
Mon dernier trip musical Citation:
|
||||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mars 2006 Messages : 5 ![]() |
Bonjour et merci pour ta réponse.
Pour la première question donc niquel j'ai suivi ta piste. J'ai donc créer une requête avec le nom de l'agent, le nom de l'équipement, et la date. J'applique donc le filtre de date, et je filtre sur le nom de l'agent. J'ai créer une deuxième requête similaire, simplement avec plus d'infos, où j'applique juste le filtre de date. Je fais une jointure entre les deux sur le nom de l'équipement donc avec cardinalités 1.n et 1.1. Cela semble fonctionner, au final je n'ai que les interventions sur les équipements où l'agent est intervenu au moins une fois. Grand merci donc pour cette partie. Par contre pour la deuxième non, je n'ai ni les droits de modifier les données des tables, ni les droits d'exécuter du code SQL. Il me faut une autre piste qui se limite strictement avec ce qu'on peut faire avec report studio ^^ Donc sur une donnée élémentaire dans une liste, comment lui dire va me chercher la date de la prochaine intervention sur cette équipement en particulier, et si cette équipement est déclaré inutilisable (colonne "HS ?") alors mets moi cette date, sinon ne met rien. Merci ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com