Bonjour,
Je n'arrive pas à m'en sortir avec une requête, là voici :
En gros l'idée est d'avoir le nombre d’enquête et d'appel par contrat sur le mois dernier pour avoir quelques chose comme ça
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT c.nom as 'contrat', COUNT(a.id) as 'recus', COUNT(e.id) as 'nb_enquete', COUNT(e.id) as 'nb_sms' FROM contrat c LEFT JOIN appels a ON c.id = a.id_contrat AND DATE(a.date) >= '2015-02-01' AND DATE(a.date) <= '2015-02-28' LEFT JOIN enquete e ON c.id = e.id_contrat AND DATE(e.date) >= '2015-02-01' AND DATE(e.date) <= '2015-02-28' LEFT JOIN gqm_sms gs ON c.id = gs.id_contrat AND gs.statut = 1 AND gs.note != 0 AND DATE(gs.date) >= '2015-02-01' AND DATE(gs.date) <= '2015-02-28' GROUP BY c.id
CONTRAT 1 | 105 | 2 | 9
CONTRAT 2 | 85 | 15 | 12
CONTRAT 3 | 85 | 3 | 20
Mais ma requête affiche
CONTRAT 1 | 800 | 800 | 800
CONTRAT 2 | 500 | 500 | 500
CONTRAT 3 | 300 | 300 | 300
Vous auriez une idée ?
Pour info, si je rajoute 3 DISTINCT ça fonctionne mais la requête est interminable, voir crash (beaucoup de données) :
Les 3 jointures essayée une à une sont pourtant très rapide et ne posent aucun problème (il y'a également des index) ... mais ensemble ça ne passe pas, elles semblent se démultiplier entre elles
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT c.nom as 'contrat', COUNT(DISTINCT a.id) as 'recus', COUNT(DISTINCT e.id) as 'nb_enquete', COUNT(DISTINCT e.id) as 'nb_sms' FROM contrat c LEFT JOIN appels a ON c.id = a.id_contrat AND DATE(a.date) >= '2015-02-01' AND DATE(a.date) <= '2015-02-28' LEFT JOIN enquete e ON c.id = e.id_contrat AND DATE(e.date) >= '2015-02-01' AND DATE(e.date) <= '2015-02-28' LEFT JOIN gqm_sms gs ON c.id = gs.id_contrat AND gs.statut = 1 AND gs.note != 0 AND DATE(gs.date) >= '2015-02-01' AND DATE(gs.date) <= '2015-02-28' GROUP BY c.id
Partager