Filtrer les données d'une BD et faire des traitements
pink90
Messages postés34Date d'inscriptionlundi 25 avril 2011StatutMembreDernière intervention18 juin 2013
-
18 juin 2013 à 18:01
cormandyr
Messages postés600Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention 8 juillet 2016
-
1 août 2013 à 10:03
Salut tout le monde
je vais expliquer ce que j'ai écrit dans le titre, et je m'excuse si mon sujet est trop long alors j'ai une table dans la base de données nommée "supervision" qui a la structure suivante:
DATE_
OPERATEUR
SENS
SERVICE
NOMBRE_APPELS
DUREE
MONTANT
TYPE
j'ai une interface Java(Swing) qui permet à l'utilisateur de choisir une 'Date de début' et une 'Date de fin' et stocke les données comprises entre ces deux dates quelque part (je m’intéresse à 4 champs seulement: DATE, OPERATEUR, DUREE, TYPE.
Voici ma requête:
SELECT DATE_, OPERATEUR, DUREE, TYPE
FROM SUPERVISION WHERE DATE_ BETWEEN date_debut AND date_fin ORDER BY DATE_, OPERATEUR
1)-Si vous avez des idées où placer les données comprise entre date début et date fin (j'ai pensé à créer une table temporaire et la remplir à chaque fois que l'interface est lancée et faire un trigger before insert pour la vider afin de la remplir à nouveau et je sait pas si je peut faire ça à l'aide d'une liste ou tableau )
les données que je doit recevoir après cette requête sont de la forme:(bien sur j'ai des milliers d'enregistrements c'est juste un simple exemple)
Date OPERATEUR DUREE TYPE
2013-01-01 operateur1 200 IN
2013-01-01 operateur1 300 OUT
2013-01-01 operateur1 3 IN
2013-01-01 operateur2 2 IN
2013-01-01 operateur2 3 OUT
2013-01-01 operateur2 800 IN
2013-01-01 operateur3 200 OUT
2013-01-01 operateur3 100 IN
...............
2)-je veut recevoir un rapport me disant comme quoi pour operateur1 il y'a une durée anormale: 3 car elle est très petite par rapport à 200 et 300, et pour oprateur2 la valeur anormale c'est 800 car elle est très grande par rapport à 2 et 3 .... et ainsi de suite jusqu'à ce qu'il parcourt toute la table(bien sur ces valeurs seront détectées à l'aide d'une formule mathématique).
mon souci est: comment dire à mon algorithme que je veut appliquer une formule mathématique aux DUREE correspondantes à chaque opérateur à part et pas à l'ensemble des durées ? et comment accéder au DUREE en gardant la correspondance entre date, operateur, duree et type genre je reçoit un rapport contenant la toute la ligne ou se trouve la DUREE anormale détectée par ma formule
voilà où je suis bloquée et j'ai mal à la tête à cause de ça
je suis désolée encore une fois pour ce LONG sujet et je vous remercie pour l’intérêt que vous porterez à mon problème
A voir également:
Filtrer les données d'une BD et faire des traitements
cormandyr
Messages postés600Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention 8 juillet 201611 1 août 2013 à 10:03
Oula ça date....
j'ignore si le sujet est encore d'actualité...
En premier lieu, je te dirais de d'abord trier tes résultats de recherche (via des GROUP BY) de cette manière tu peux avoir tout les tupples pour un operateur en un block...
si l'operateur change, tu sais que tu as eu toutes les infos du précédant opérateur.
ensuite je pense que tu dois faire des stats...
calculer l'écart type de tes durées et voir si en fonction d'un delta choisi, les durées sont normales ou non...