Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour,
Je cherche à calculer le nombre d'activités que mes ressources ont à faire au cours d'un temps donné. Cependant ces ressources peuvent travailler en tant que ressource 1 ou en tant que ressource 2, comme je le montre dans le tableau ci-dessous :
Activité | Ressource 1 | Ressource 2 |
---|---|---|
act1 | Roger | |
act2 | Jeremy | |
act3 | Baptiste | Jeremy |
act4 | Roger | |
act5 | Roger | Paul |
act6 | Dimitry | Baptiste |
act7 | Paul | |
... | ... | ... |
Du coup, j'aimerai savoir comment faire compter le nombre d'activités effectuées par chacune de mes ressources en comptant les activités effectuées par cette ressource en tant que ressource 1 et en tant que ressource2.
Merci d'avance pour vos réponses
// Tout d'abord, lister l'ensemble des ressources distinctes contenu dans ton tableau (que j'appellerai TABLE ci-après, et dont je présuppose qu'elle est chargée en mémoire....)
RESSOURCES:
Load distinct Ressource1 as RessourceId resident TABLE;
Load distinct Ressource2 as RessourceId residentTABLE;
// Puis faire une "réduction" pour filtrer les cas ou un Id travaille en Ressource 1 et en Ressource 2
inner join load distinct RessourceId resident RESSOURCES;
// Puis effectuer le comptage pour chaque RessourceId du nb de fois ou elle apparait en tant que Ressouce1 puis en tant que Ressource2
left join load Ressource1 as RessouceId, count(Activité) as NbactiviteCommeRess1 resident TABLE group by Ressource1;
left join load Ressource2 as RessouceId, count(Activité) as NbactiviteCommeRess2 resident TABLE group by Ressource2;
Voila, ça devrait le faire...
cdlmt
A noter qu'avec la bonne fonction, dans le cas présent je devrais obtenir :
Roger : 3
Jeremy : 2
Baptiste :2
Paul : 2
Dimitry : 1
// Tout d'abord, lister l'ensemble des ressources distinctes contenu dans ton tableau (que j'appellerai TABLE ci-après, et dont je présuppose qu'elle est chargée en mémoire....)
RESSOURCES:
Load distinct Ressource1 as RessourceId resident TABLE;
Load distinct Ressource2 as RessourceId residentTABLE;
// Puis faire une "réduction" pour filtrer les cas ou un Id travaille en Ressource 1 et en Ressource 2
inner join load distinct RessourceId resident RESSOURCES;
// Puis effectuer le comptage pour chaque RessourceId du nb de fois ou elle apparait en tant que Ressouce1 puis en tant que Ressource2
left join load Ressource1 as RessouceId, count(Activité) as NbactiviteCommeRess1 resident TABLE group by Ressource1;
left join load Ressource2 as RessouceId, count(Activité) as NbactiviteCommeRess2 resident TABLE group by Ressource2;
Voila, ça devrait le faire...
cdlmt
Mon résultat sera un peu+ "fin"
ID ActivitéRess1 ActivitéRess1
Roger 3 -
Jeremy 1 1
Baptiste 1 1
Paul 1 1
Dimitry 1 -
NB1 : Si tout souhaite le TOTAL, il suffit de rajouter à la fin du script:
inner join load RessourceId, NbactiviteCommeRess2+NbactiviteCommeRess2 as NbActiviteTotal resident RESSOURCES;
NB2 :: Et si tu souhaites un tri décroissant sur le nombre, rajouter un "order by NbActiviteTotal Desc".....
Dans le Script;
Load
Activité,
[Ressource 1] as Ressource,
'Ressource 1' as Type_Ressource
From Chemin_Fichier;
concatenate
Load
Activité,
[Ressource 2] as Ressource,
'Ressource 2' as Type_Ressource
From Chemin_Fichier;
Dans le graphique:
count( Ressource)
Merci, c'est ce qu'il me fallait .
Cependant, j'aimerai garder l'intéraction avec toutes les autres variables existantes.
Par exemple, lorsque je clique sur une de mes activités, j'aimerai que la table activité réagisse en n'affichant que les activités faites par ma ressource (peu importe que ce soit en tant que 1ère ou 2ème ressource). Savez-vous comment faire ?