IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Problème sum et left outer join from multi table


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 162
    Par défaut Problème sum et left outer join from multi table
    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

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Il faut scinder les requêtes et les regrouper ensuite pour éviter le phénomène que vous avez décrit.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    With Req1 (id, tot1) as (select id, sum(tot) from table1 group by id)
       , Req2 (id, tot2) as (select id, sum(tot) from table2 group by id)
    select Rf.id, Rf.nom
         , coalesce(R1.tot1, 0) as tot1
         , coalesce(R2.tot2, 0) as tot2
      from Reference as Rf
           left outer join Req1 as R1 on R1.id = Rf.id
           left outer join Req2 as R2 on R2.id = Rf.id

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 162
    Par défaut
    Ta réponse est trop parfaite, merci bcpppppppppppppp pour ton retour

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Construction requête : problème avec un LEFT OUTER JOIN
    Par riomois85 dans le forum Développement
    Réponses: 6
    Dernier message: 22/08/2014, 14h25
  2. Requete left outer join entre 3 tables
    Par malabar63 dans le forum Requêtes
    Réponses: 2
    Dernier message: 20/04/2012, 16h32
  3. LEFT OUTER JOIN avec trois tables
    Par Space Cowboy dans le forum Requêtes
    Réponses: 8
    Dernier message: 19/08/2008, 14h51
  4. Problème avec left outer join
    Par jgfa9 dans le forum Requêtes
    Réponses: 1
    Dernier message: 22/08/2005, 21h07
  5. Problème de performance avec LEFT OUTER JOIN
    Par jgfa9 dans le forum Requêtes
    Réponses: 6
    Dernier message: 17/07/2005, 13h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo