Bonjour,
je bloque sur la mise en place d'un calcul d'indicateur sous informix.
La requête de base filtré sur une procédure(pro.numproc) pour exemple :
1 2 3 4 5 6 7 8 9 10 11
| SELECT
pro.nomproc,
count(dos.nctx),
sum(dos.fctx - dos.bctx +1),
round(sum(dos.fctx - dos.bctx +1)/count(dos.nctx))
from s_wfdos dos,s_wfpro pro
where dos.fctx is not null
and dos.nctx = pro.nctx
and pro.etopori = 'O'
and pro.nomproc = 'CX_CTX_DEM_10'
group by pro.nomproc; |
Le résultat :
nomproc CX_CTX_DEM_10
(count) 19
(sum) 59
(expression) 3
La procédure "CX_CTX_DEM_10" contient 19 dossiers (nctx) avec un délai total de 59 jours et un délai moyen de 3 jours. Un dossier a une date d'ouverture et une date de fermeture.
Le besoin est de retirer 20 % des délais les plus court et 20 des délai les plus long. Une fois cette soustraction, calculer le délai moyen et afficher le délai mini et le délai maxi.
Liste des dossiers de la procédure (CX_CTX_DEM_10) avec leur délai :
Procédure N° dossier Délai
CX_CTX_DEM_10 256064 1
CX_CTX_DEM_10 284586 1
CX_CTX_DEM_10 381577 1
CX_CTX_DEM_10 251932 1
CX_CTX_DEM_10 381578 1
CX_CTX_DEM_10 418723 1
CX_CTX_DEM_10 448907 1
CX_CTX_DEM_10 381575 1
CX_CTX_DEM_10 284585 1
CX_CTX_DEM_10 428160 1
CX_CTX_DEM_10 201071 1
CX_CTX_DEM_10 587635 2
CX_CTX_DEM_10 431395 2
CX_CTX_DEM_10 642410 6
CX_CTX_DEM_10 653516 6
CX_CTX_DEM_10 428161 6
CX_CTX_DEM_10 813615 6
CX_CTX_DEM_10 653517 6
CX_CTX_DEM_10 480496 14
De cette liste de dossiers pour cette procédure, je veux retirer 20% des délais les plus courts et 20 % des délais les plus long. Je ne sais pas si cela est possible sous informix. Ceci est un exemple, suivant la procédure on peut avoir tous les délais possibles, une procédure avec des dossiers ayant tous le même délai, avec 2 délais différents,.....
Merci pour votre aide
Partager