Bonjour à toutes et tous
j'ai 2 requêtes différentes :
une permettant de connaître le nombre d'activité en salle "nb_salle" qu'un adhérent peut avoir dans les cours .
la table adherents_cours a l'id de l'adhérents l'id de l'activté et si le cours est à l'année "adherents_cours.annee=1".
nbreA représentant dans la table adherents le nombre d'activité prise à l'année, y compris les activités en salle
Une deuxième:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT adherents.ID, adherents.nom, adherents_cours.annee, adherents.nbreA, COUNT(adherents.ID) AS nb_salle FROM adherents INNER JOIN adherents_cours ON adherents_cours.id_adherent = adherents.ID INNER JOIN activites ON activites.ID = adherents_cours.id_activite WHERE adherents_cours.id_saison = 7 AND activites.duree_seance = 1.25 AND activites.ID<>197 AND activites.ID<>198 AND adherents_cours.annee=1 GROUP BY adherents.ID ORDER BY `nb_salle` DESC, nbreA DESC LIMIT 500;
qui additionne tous les achats "achats.total_annees_reduit" de tous les adhérents
moi j'aurais voulu extraire les achats seulement des adhérents qui ont au moins une activité en salle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT achats.id_adherent, SUM(achats.total_annees_reduit) AS tot FROM achats WHERE achats.id_saison = 7 GROUP BY achats.id_adherent ORDER BY tot DESC LIMIT 500;
mais lorsque j'essaie de faire une seule requete, elle s'éxécute mais est totalement fausse.
je la marque mais ce n'est sur pas bon
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SELECT achats.id_adherent, adherents.nom, adherents_cours.annee, adherents.nbreA, COUNT(adherents.ID) AS nb_salle, SUM(achats.total_annees_reduit) AS tot FROM achats INNER JOIN adherents ON adherents.ID = achats.id_adherent INNER JOIN adherents_cours ON adherents_cours.id_adherent = adherents.ID INNER JOIN activites ON activites.ID = adherents_cours.id_activite WHERE adherents_cours.id_saison = 7 AND (activites.duree_seance = 1.25 OR activites.duree_seance = 1) AND activites.ID<>197 AND activites.ID<>198 AND adherents_cours.annee=1 GROUP BY adherents.ID ORDER BY `nb_salle` DESC, nbreA DESC LIMIT 500;
Partager