Bonjour a tous, merci d'avance pour un coup de main, je ne sais meme pas si ce que je veux faire est possible !
Dans ma base j'insere des resultats de tests divers :
T_EXECUTION(ID,DATE,RESULTAT,TEST)
T_TEST(ID,NOM)
Il y a plusieurs executions de plusieurs tests.
Il y a plusieurs executions du meme test par jour.
Les resultats sont une chaine de caractere : "OK" ou "NOK"
Pour en visualiser les resultats globaux, je requete sur les deux tables en groupant par ID de type de test :
Jusqu'ici tout va bien ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT * FROM T_EXECUTION LEFT JOIN T_TEST ON T_EXECUTION.TEST=T_TEST.ID GROUP BY T_TEST.ID
Je souhaite voir pour tous les tests différents :
- Le nom du test,
- La date de la derniere execution,
- le resultat de la derniere execution,
- le nombre de OK pour ce test aujourd'hui,
- le nombre de NOK pour ce test aujourd'hui,
- UNE TENDANCE BASEE SUR LES 3 DERNIERS RESULTATS DE TEST.
et c'est la que le bât blesse, je n'ai pas trouvé de solution pour isoler ces "3 derniers tests" sans casser toute ma requete
Pour les premiers champs, j'en suis la :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 SELECT T_TEST.NOM, SUBTABLE.derniere_date, T_EXECUTION.RESULTAT, SUBTABLE.nb_ok, SUBTABLE.nb_nok FROM T_EXECUTION LEFT JOIN T_TEST ON T_EXECUTION.TEST=T_TEST.ID, ( SELECT T_TEST.ID,max(T_EXECUTION.DATE) AS dernier_date, sum(Decode(T_EXECUTION.RESULTAT,'OK',1, 0)) as nb_ok sum(Decode(T_EXECUTION.RESULTAT,'NOK',1, 0)) as nb_nok FROM T_EXECUTION,T_TEST WHERE T_EXECUTION.TEST=T_TEST.ID AND T_EXECUTION.DATE>/* je calcule la date du jour */ GROUP BY T_TEST.ID ) SUBTABLE WHERE SUBTABLE.derniere_date=T_EXECUTION.DATE AND SUBTABLE.ID = T_EXECUTION.TEST
Quelqu'un peut me donner un indice pour requeter a la fois sur l'ensemble des données et un groupe isolé comme "les 3 dernieres lignes" pour que je puisse calculer ma tendance ?
Meci![]()
Partager