La table offre a disparu de vos dernières requêtes, est-ce normal ?
La table offre a disparu de vos dernières requêtes, est-ce normal ?
Email : http://scr.im/waldar
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
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
Email : http://scr.im/waldar
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
Ça veut dire que c'est bon ou pas ?
Email : http://scr.im/waldar
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
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
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.
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
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
la réponse est oui, il y en a 4 qui n'ont pas d'objectifs
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 :
Voici le résultat obtenu :
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
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.
C'est bien de mettre le résultat obtenu, mais comme on n'a pas les données de départ !
Email : http://scr.im/waldar
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.
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
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.
Email : http://scr.im/waldar
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
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
Il manque encore les ventes (nécessaires pour la requête).
Email : http://scr.im/waldar
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager