Archives de la liste a​i​d​e​@p​a​h​e​k​o​.c​l​o​u​d​

Requête SQL : qui n’a pas encore réadhéré cette année ?

Guillaume Leroux (e-commerce)

07/02/2023 20:46:04

Bonsoir,

[librement inspiré d’une requête de Éric Buissonnet, message #24954 du 14/01/2023]

Pour usage et inspiration, voici une requête mise au point hier pour trouver l’ensemble
des adhérents ayant cotisé en 2022, mais n’ayant pas encore cotisé en 2023. Dans
notre asso, nous créons une activité « Cotisation AAAA » annuelle qui couvre
l’année civile. Cette valeur est à remplacer par la vôtre dans la requête bien sûr.

Ceci doit nous permettre d’envoyer un message personnalisé en utilisant les balises
{{$nom_du_champ}} décrites ici :
https://paheko.cloud/messages-collectifs-personnalisation
<https://paheko.cloud/messages-collectifs-personnalisation>.

À noter que si on crée un tel message personnalisé et qu’on veut l’envoyer sur la
base d’une requête SQL, il faut que le SELECT de la requête extraie bien les champs
personnalisés que l’on souhaite inclure dans le texte du message. J’ai compris ce
détail hier lors d’un échange avec Bohwaz, et ce n’est pas (encore) expliqué sur la
page d’aide.

SELECT
   membres.nom,
   membres.email,
   membres.id <http://membres.id/>,
   s.label AS 'Activité'
FROM membres
   INNER JOIN services_users su ON su.id_user = membres.id <http://membres.id/>
   INNER JOIN services s ON s.id <http://s.id/> = su.id_service
WHERE s.label = "Cotisation 2022" AND membres.id <http://membres.id/> NOT
IN (

     SELECT   membres.id <http://membres.id/>
     FROM membres
       INNER JOIN services_users su ON su.id_user = membres.id <http://membres.id/>
       INNER JOIN services s ON s.id <http://s.id/> = su.id_service
     WHERE s.label = "Cotisation 2023"
  )
ORDER BY membres.nom LIMIT 1000;

On peut aussi étendre ça à des personnes que l’on a gardé dans la base et qui
n’ont pas recotisé depuis 2021, en enrichissant la première clause WHERE :

WHERE (s.label = "Cotisation 2022 » OR s.label = "Cotisation 2021") AND
membres.id <http://membres.id/> NOT IN (idem

À bientôt,

Guillaume
https://tregorbicyclette.fr <https://tregorbicyclette.fr/>