Bonjour à tous,
Je travaille sur les tables suivantes :
division(id_division, ...)
service(id_service, id_division, ...)
employe(id_employe, id_service, id_abonnement, ...)
abonnement(id_abonnement, cout_abonnement, ...)
facture(id_facture, id_employe, ...)
appel(id_appel, id_facture, duree_appel, cout_appel, ...)
J'essaye d'obtenir pour une division donnée, le coût cumulé et la durée cumulée des appels pour chaque service.
Pour le calcul du coût, le coût d'un appel vaut 0 dans le cadre de son abonnement ou une valeur positive pour du hors forfait. Il reste ensuite à rajouter le prix des différents abonnements.
J'ai un début de requête :
et j'obtiens le résultat suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 select s.id_service, s.nom, sum(a.duree_appel) as duree_cumulee, (count(distinct f.id_facture) * ab.cout_bonnement + round(sum(a.cout_appel), 2)) as cout_cumule from pjt_service s inner join pjt_division d on d.id_division = s.id_division inner join pjt_employe e on e.id_service = s.id_service inner join pjt_facture f on f.id_employe = e.id_employe inner join pjt_appel a on a.id_facture = f.id_facture inner join pjt_abonnement ab on ab.id_abonnement = e.id_abonnement where d.id_division = 1 group by s.id_service, s.nom, ab.cout_abonnement;
Le résultat est correct, mais j'ai besoin de grouper les lignes qui appartiennent au même service... Dans cette requête, je suis obligé de faire un regroupement sur le coût de l'abonnement pour que ma requête reste valide, d'où les différentes lignes pour un même service...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ID_SERVICE NOM DUREE_CUMULEE COUT_CUMULE ---------- ------------------------------ ------------- ----------- 1 Développement 796241 3508,13 2 Communication 847973 3056,19 2 Communication 814711 2351,82
Si quelqu'un à une idée, je suis preneur!
Merci d'avance!
Olivier
Partager