bonjour
j'ai une requête imbriqué qui doit retourner les taux depuis une table 1 et la somme d'un champs d'une autre table 2, le problème c'est que le résultat de la somme se multiplie par le nombre de résultat qui se trouve dans la deuxième table
exemple:
si la somme doit retourner 10
et le nombre des ligne qui contient l'information dans l'autre table sont 10
le résultat que j'aurai est la multiplication de 10*10=100
voici ma requête:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
 
SELECT p.per_id,LA.num_log,per_nom + ' ' +per_prenom 'Nom',sum(nb_appel)'Nbre_appel',
isnull(100*(convert(float,sum(nb_ticket_hot))/sum(nb_appel)),0) 'Tx_creation_ticket',
isnull(convert(float,sum(nb_ticket_refuse_net))/sum(nb_appel),0)*100 'Tx_refus_ticket',
isnull(convert(float,SUM(nb_once_done))/SUM(nb_contact_prim),0)*100 'Taux_OD',
isnull(convert(float,SUM(nb_1st_done))/SUM(nb_contacts),0)*100 'Taux_FD',
isnull(convert(float,SUM(somme_trait))/sum(nb_appel),0)*100 'Taux_histo'
 from personne p left outer join LogAffecte LA  on LA.per_id=p.per_id left outer join FAI_Dolmen_Once_Donce FD  on LA.num_log=FD.log_agent
 left outer join FAI_tickets FT on num_log=FT.log_agent left outer join FAI_Total_Codif TC on TC.log_agent=FT.log_agent  where
(FT.annee=2011 and FT.date_fichier between 44 and 52)or (FD.annee=2011 and FD.semaine between 44 and 52) or (TC.annee=2011 and TC.date_fichier between 44 and 52)
group by p.per_id,LA.num_log,p.per_nom,p.per_prenom