Bonjour, j'ai un petit soucis sur la formulation d'une requête SQL.
Je vous explique la situation :
J'ai différent type de données :
- Des périmètres (finance, vie, iard-fo...)
- Des applications (RRCI, AXAN sur 4 lettres, chaque appli appartenant à 1 périmètre)
- Des Jobsets (sous la forme PAFA-AAXA-001M, chaque Jobset appartenant à une appli)
- Des Jobs (sous la forme PAAXA-001M-005M, chaque Job appartenant à un Jobset)
--> Exemple d'une ligne :
Perimetre application Nom du Jobset Nom de Job
IARD-FO AAXA PAFA-AAXA-001M PAAXA-001M-005M
La requête que j'envoi join la table perimetre,appli,jobset et job pour récupérer le nombre total de job par jobset par appli par périmètre. Au final j'aimerais avoir quelque chose dans le style :
Perimetre application Nom du Jobset Nombre total de Job
IARD-FO AAXA PAFA-AAXA-001M 39
Ma requête est initialement comme ci dessous :
Cette requête fonctionne parfaitement elle m'affiche le listing des jobs par jobsets par appli... Seul problème, des que je place mon COUNT, cela m'affiche ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT PERIMETRE.NOMPERIMETRE AS 'Nom du Perimetre', APPLI.NOMAPPLI AS 'Nom de l\'application', JOBSET.NOMJOBSET AS 'Nom du Jobset', JOB.NOMJOB AS 'Nombre total de Jobs' FROM JOB INNER JOIN JOBSET ON (JOB.JOBSET_IDJOBSET=JOBSET.IDJOBSET) INNER JOIN APPLI ON (APPLI.IDAPPLI=JOBSET.APPLI_IDAPPLI) INNER JOIN PERIMETRE ON (APPLI.PERIMETRE_IDPERIMETRE=PERIMETRE.IDPERIMETRE) GROUP BY JOB.NOMJOB HAVING SUBSTR(JOB.NOMJOB,2,9)=SUBSTR(JOBSET.NOMJOBSET,6,9)
Nom du Perimetre Nom de l'application Nom du Jobset Nombre total de Jobs
IARD-FO AAXA PAFA-AAXA-001M 1
VIE ABON PAFA-ABON-001Q 1
VIE ABON PAFA-ABON-002Q 1...
Je me suis ensuite posé la question : est-ce que je dois faire une requête imbriquée c'est à dire, afficher en un premier temps tout et par la suite compter ?
Seul problème c'est que je ne vois pas comment formuler tout ca.
Si quelqu'un a une idée et surtout un peu de temps à me consacrer ca serait formidable. Merci d'avance.
Partager