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

Langage SQL Discussion :

le résultat souhaité n'est pas obtenu


Sujet :

Langage SQL

  1. #21
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 814
    Points
    17 814
    Par défaut
    La table offre a disparu de vos dernières requêtes, est-ce normal ?

  2. #22
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Points : 97
    Points
    97
    Par défaut
    Citation Envoyé par Waldar Voir le message
    La table offre a disparu de vos dernières requêtes, est-ce normal ?
    oui on essaie de faire petit à petit pour obtenir le résulat escompté.

    Teach t'as requête n'était pas bonne, j'ai légèrement modifié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    SELECT nni, nom, prenom, ob.code_offre, ob.obj, count( v.num_vente ) AS nbvente
    FROM agents ag
    LEFT OUTER JOIN obectifs ob ON ob.num_agent = ag.num_agent
    LEFT OUTER JOIN (
     
    SELECT v.code_offre, v.num_agent, v.num_vente
    FROM ventes v
    WHERE v.date_vente = '2010-03-15'
    )v ON v.num_agent = ag.num_agent
    AND ob.num_semaine = '11'
    AND ob.annee = '2010'
    WHERE num_equipe =1
    GROUP BY nni, nom, prenom, ob.code_offre, ob.obj

    et j'obtiens uniquement les agents de l'équipe 1
    mais j'ai pour tout objectif confondu et le décompte des ventes ne fonctionne plus

  3. #23
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 814
    Points
    17 814
    Par défaut
    Et comme ça :
    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
      SELECT nni, nom, prenom,
             ob.code_offre, ob.obj,
             count(v.num_vente) AS nbvente
        FROM agents ag
             LEFT OUTER JOIN obectifs ob
               ON ob.num_agent   = ag.num_agent 
              AND ob.num_semaine = '11'
              AND ob.annee       = '2010' 
             LEFT OUTER JOIN ventes v
               ON v.code_offre = ob.code_offre
              AND v.num_agent  = ag.num_agent
              AND v.date_vente = '2010-03-15'
       WHERE ag.num_equipe = 1
    GROUP BY nni, nom, prenom,
             ob.code_offre, ob.obj

  4. #24
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Points : 97
    Points
    97
    Par défaut
    J'ai les agents de l'équipe 1 pour les objectifs qui ne sont pas null.le décompte des ventes se fait bien

    en tout cas je vous remercie de votre aide

  5. #25
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 814
    Points
    17 814
    Par défaut
    Ça veut dire que c'est bon ou pas ?

  6. #26
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Points : 97
    Points
    97
    Par défaut
    et bien non c'est pas bon...je n'obtiens les résultats que des agents ayant un objectif.

    Imaginons que un agent vende une offre alors qu'il n'avait pas d'objectif pour cette offre et bien cette vente ne s'affiche pas dans le résultat de ma requête

  7. #27
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 135
    Points : 164
    Points
    164
    Par défaut
    Mais dans ton cas actuel que te renvoie cette requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT nni, nom, prenom,
     FROM agents ag
     Where not exists(Select 1
                            From obectifs ob
                            Where ob.num_agent   = ag.num_agent 
                           AND ob.num_semaine = '11'
                           AND ob.annee       = '2010'
                          )
     And ag.num_equipe = 1

  8. #28
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Points : 97
    Points
    97
    Par défaut
    Citation Envoyé par teach Voir le message
    Mais dans ton cas actuel que te renvoie cette requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT nni, nom, prenom,
     FROM agents ag
     Where not exists(Select 1
                            From obectifs ob
                            Where ob.num_agent   = ag.num_agent 
                           AND ob.num_semaine = '11'
                           AND ob.annee       = '2010'
                          )
     And ag.num_equipe = 1
    elle me renvoie une belle erreur.mais je vois pas ce que tu veux faire là

  9. #29
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Points : 97
    Points
    97
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT of.libelle_offre,ob.obj,count(v.num_vente) AS nbvente 
    FROM offres of LEFT OUTER JOIN obectifs ob ON ob.code_offre = of.code_offre 
    AND ob.num_semaine = '11' 
    AND ob.annee = '2010' 
    AND num_agent in (select num_agent from agents where num_equipe =1) LEFT OUTER JOIN ventes v ON v.code_offre = of.code_offre 
    AND v.num_agent in (select num_agent from agents where num_equipe =1) AND v.date_vente = '2010-03-16' 
    WHERE of.code_canal = 'crc_qe' 
    GROUP BY of.libelle_offre,ob.obj 
    order by ordre
    j'ai cette requete qui me renvoie le cumul des ventes par offre pour l'équipe 1.et je voudrais que se soit par offre et par agent de l'équipe 1 en faite.c'est peut-être plus clair si je demande ça ainsi.

  10. #30
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 135
    Points : 164
    Points
    164
    Par défaut
    pour mon cas je voulais savoir si il existe des agents sans objectif et comprendre que si la solution précédente était correcte(elle parait bien)
    pour l'erreur c'était une virgule qui trainait dans le select

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT nni, nom, prenom
     FROM agents ag
     WHERE NOT EXISTS(SELECT *
                            FROM obectifs ob
                            WHERE ob.num_agent   = ag.num_agent 
                           AND ob.num_semaine = '11'
                           AND ob.annee       = '2010'
                          )
     AND ag.num_equipe = 1

  11. #31
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Points : 97
    Points
    97
    Par défaut
    la réponse est oui, il y en a 4 qui n'ont pas d'objectifs

  12. #32
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Points : 97
    Points
    97
    Par défaut
    Citation Envoyé par ballantine's Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT of.libelle_offre,ob.obj,count(v.num_vente) AS nbvente 
    FROM offres of LEFT OUTER JOIN obectifs ob ON ob.code_offre = of.code_offre 
    AND ob.num_semaine = '11' 
    AND ob.annee = '2010' 
    AND num_agent in (select num_agent from agents where num_equipe =1) LEFT OUTER JOIN ventes v ON v.code_offre = of.code_offre 
    AND v.num_agent in (select num_agent from agents where num_equipe =1) AND v.date_vente = '2010-03-16' 
    WHERE of.code_canal = 'crc_qe' 
    GROUP BY of.libelle_offre,ob.obj 
    order by ordre
    A partir de cette requête qui me retroune le cumul des ventes des agents de l'équipe 1, j'ai essayé d'obtenir le résultat des ventes pour chaque agent et pour chaque offre

    J'ai essayé cette requête, mais je n'obtiens pas le bon résultat :

    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
     
    SELECT nni,nom,prenom,v.libelle_offre,v.obj,v.nbvente FROM agents ag LEFT OUTER JOIN (      
    SELECT of.libelle_offre,of.code_offre,ob.num_agent,ob.obj,count(v.num_vente) AS nbvente 
    FROM offres of LEFT OUTER JOIN obectifs ob ON ob.code_offre = of.code_offre 
    AND ob.num_semaine = '11' 
    AND ob.annee = '2010' 
    AND ob.num_agent in (SELECT num_agent from agents where num_equipe = 1) 
    LEFT OUTER JOIN ventes v ON v.code_offre = of.code_offre 
    AND v.date_vente = '2010-03-16' 
    AND v.num_agent in (SELECT num_agent from agents where num_equipe = 1) AND of.code_canal = 'crc_qe'  
    GROUP BY of.libelle_offre,ob.obj 
    order by ordre
    ) v 
    ON ag.num_agent = v.num_agent 
    AND ag.num_equipe = 1
    Voici le résultat obtenu :

    nni | nom | prenom | libelle_offre |obj |nbvente
    A00016 conseiller qe AFE 2 1
    A00016 conseiller qe Email 5 0
    A00017 conseiller simm part NULL NULL NULL
    A00001 conseiller simm pro NULL NULL NULL
    A00002 conseiller boutique NULL NULL NULL
    A00003 RE QE NULL NULL NULL
    A00004 RE SIMM PART NULL NULL NULL
    A00005 RE SIMM PRO NULL NULL NULL
    A00006 RE Boutique NULL NULL NULL
    A00007 MDR QE NULL NULL NULL
    A00008 MDR SIMM PART NULL NULL NULL
    A00009 MDR SIMM PRO NULL NULL NULL
    A00010 MDR Boutique NULL NULL NULL
    A00011 CRC QE NULL NULL NULL
    A00012 CRC SIMM PART NULL NULL NULL
    A00013 CRC SIMM PRO NULL NULL NULL
    A00014 Resp Boutique NULL NULL NULL
    A00015 DCPP NULL NULL NULL
    g07357 bobinet valentine NULL NULL NULL
    A00018 truc muche NULL NULL NULL


    J'ai tous les agents mais le premier agent dans mes résultats, lorsqu'il n'a pas d'objectif pour une offre, cette offre ne s'affiche pas et la ou les ventes correspondantes non plus. Je ne vois pas où est le soucis. Avez vous une idée?

    Merci beaucoup.

  13. #33
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 814
    Points
    17 814
    Par défaut
    C'est bien de mettre le résultat obtenu, mais comme on n'a pas les données de départ !

  14. #34
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Bonjour,

    repartez plutot de la requête proposée par Waldar, et ajoutez les lignes pour les ventes n'étant pas rattachées à un objectif, soit en utilisant une UNION, soit en modifiant la condition de jointure pour que la jointure entre ventes et objectifs ne se fasse que si objectifs.code_offre n'est pas NULL.

  15. #35
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Points : 97
    Points
    97
    Par défaut
    Pour simplifier, j'ai pris l'exemple d'une equipe ayant deux conseillers, je voudrais ceci :

    nni | libelle offre |objectif | nbvente
    A00016 AFE 2 1
    A00016 conso NULL 0
    A00016 DE NULL 0
    A00016 Mns PA NULL 1
    A00016 Fcture Electronique NULL 0
    A00016 Email 5 0
    A00016 Gz vers SIMM NULL 2
    A00016 OCR NULL 0
    A00016 Pole Projet NULL 1
    A00016 Prospect base contact NULL 0
    A00016 Prospect entretien NULL 1
    A00018 AFE NULL 0
    A00018 conso NULL 0
    A00018 DE NULL 0
    A00018 Mns PA NULL 0
    A00018 Fcture Electronique NULL 0
    A00018 Email NULL 0
    A00018 Gz vers SIMM NULL 1
    A00018 OCR NULL 0
    A00018 Pole Projet NULL 0
    A00018 Prospect base contact NULL 0
    A00018 Prospect entretien NULL 0

  16. #36
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Points : 97
    Points
    97
    Par défaut
    Citation Envoyé par Snipah Voir le message
    Bonjour,

    repartez plutot de la requête proposée par Waldar, et ajoutez les lignes pour les ventes n'étant pas rattachées à un objectif, soit en utilisant une UNION, soit en modifiant la condition de jointure pour que la jointure entre ventes et objectifs ne se fasse que si objectifs.code_offre n'est pas NULL.
    désolé mais la je sèche, je vois pas comment faire

  17. #37
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 814
    Points
    17 814
    Par défaut
    Donnez nous le contenu de vos tables offres / objectifs / agents et vente sur un petit échantillon permettant d'obtenir le résultat que vous désirez.

  18. #38
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 135
    Points : 164
    Points
    164
    Par défaut
    sans avoir testé je te propose d'essayer ceci:
    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
     
    SELECT of.libelle_offre,ob.nni,count(v.num_vente) AS nbvente 
    FROM offres of 
    LEFT OUTER JOIN (Select * from 
                     Agent ag Left Join obectifs ob 
                     ON ag.num_agent=ob.num_agent
                     AND ob.num_semaine = '11' 
    		 AND ob.annee = '2010'
    		 LEFT OUTER JOIN ventes v 
    		 ON v.code_offre = ob.code_offre 
                     And ag.num_agent=ob.num_agent
                     AND v.date_vente = '2010-03-16' 
                     WHERE ag.num_equipe =1
                     ) ob
    ON  of.code_offre=Case When ob.code_offre is Null 
                           then of.code_offre
                           else  ob.code_offre
                      End
    WHERE of.code_canal = 'crc_qe'
    And ob.num_agent is Not Null
    GROUP BY of.libelle_offre,nni 
    ORDER BY ordre

  19. #39
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Points : 97
    Points
    97
    Par défaut
    Contenu de la table offre :
    code_offre | libelle_offre | code_canal

    ade_qe ADE crc_qe
    afe_qe AFE crc_qe
    email_qe Email crc_qe
    Fact_electronique_qe Facture Electronique crc_qe
    gaz_vers_simm_qe Gaz vers SIMM crc_qe
    mens_pa_qe Mens PA crc_qe
    ocr_qe OCR crc_qe
    pbc_qe Prospect base contact crc_qe
    pole_projet_qe Pôle Projet crc_qe
    pros_entret_chaud_qe Prospect entretien Chaudière crc_qe
    sc_qe suivi conso


    Contenu de la table objectifs pour l'agent A00016 pour la semaine 11 de cette année :
    code_offre | num_agent | num_semaine | annee | objectif

    afe_qe 1 11 2010 2
    email_qe 1 11 2010 5


    Ligne de la table agents correspondant à l'agent A00016 :
    num_agent |nni |nom | prenom |metier|num_equipe


    1 A00016 conseiller qe 1 1

  20. #40
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 814
    Points
    17 814
    Par défaut
    Il manque encore les ventes (nécessaires pour la requête).

Discussions similaires

  1. [AC-2003] Vérifier que le résultat d'une requête (n')est (pas) vide
    Par pedrus16 dans le forum VBA Access
    Réponses: 3
    Dernier message: 25/06/2009, 16h34
  2. Requete ne renvoyant pas le résultat souhaité
    Par tranzebou dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 06/08/2008, 17h15
  3. Réponses: 21
    Dernier message: 11/04/2008, 17h16
  4. ne pas afficher le résultat si c'est 0
    Par zorba49 dans le forum Excel
    Réponses: 11
    Dernier message: 23/03/2007, 17h00
  5. [GD] L'image obtenue n'est pas redimensionnée
    Par poussinphp dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 30/11/2005, 11h12

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