Bonjour,
Je vous explique le schéma de ma BD (je n'ai fait que la reprendre, je ne l'ai pas créée ):
table -dateconv qui contient un id et les dates associées
- inscription
- orientation
- nomoption
- nonsection
- categorie_ens
Je veux savoir jour/jour combien d'inscriptions il y a eu dans une catégorie donnée, et ce même si il n'y a pas eu d'inscriptions un jour -> par exemple le 27/06 : 0 inscriptions.
Voici ma requête :
Si je retire le count et le group by, il m'affiche toutes les inscriptions qui se sont déroulées entre les dates sélectionnées, et remplace la catégorie par NULL si ce n'est pas "Technique".
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 SELECT dateconv.valdate , COUNT(IF(categorie_ens.cateid IS NOT NULL,ins_rt_etu,NULL)) FROM dateconv LEFT JOIN inscription ON inscription.insdate=dateconv.id_date LEFT JOIN orientation ON orientation.oriid = inscription.ins_rt_ori LEFT JOIN nomoption ON nomoption.nopid=orientation.ori_rt_nop LEFT JOIN nomsection ON nomsection.nscid = nomoption.nop_rt_nsc LEFT JOIN categorie_ens ON categorie_ens.cateid = nomsection.nsc_rt_cate AND categorie_ens.catenom="Technique" WHERE dateconv.id_date>=39985 AND dateconv.id_date<=39992 GROUP BY (dateconv.id_date)
Y a-t-il une possibilité pour ne pas afficher du tout les lignes où la catégorie est NULL?
Le but est de pouvoir alléger le traitement pour le COUNT car j'ai 170 dates à afficher, et lorsque j'en affiche 60, celà prend déjà plus de 30 secondes...
Merci
Partager