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

Syntaxe recherche SQL

jean-christophe@lenormand.bzh

24/06/2024 12:43:29

Bonjour,

Dans l’activité « 1 cotisation annuelle », la date d’expiration est le 31/12/2022
pour certains et 31/12/2023 pour d’autres.

Qu’elle serait la syntaxte SQL pour créer une recherche enregistrée afin d’envoyer
un message uniquement aux adhérents dont la cotisation expire au 31/12/2023 ?

En vous remerciant d’avance,

Syntaxe recherche SQL

lesanges at zaclys.net via aide

24/06/2024 13:30:47

Bonjour Jean-Christophe,

Est-ce que ceci fait ce que tu veux ?

SELECT
     nom,
     strftime("%d/%m/%Y", s.end_date) as "fin",
     s.label
FROM users
INNER JOIN services_users as su ON users.id = su.id_user
INNER JOIN services as s ON su.id_service = s.id
WHERE
     s.label = "1 cotisation annuelle"
AND
     strftime("%d/%m/%Y", s.end_date) = "31/12/2023"

Jean-Christophe (le breton)

Le 24/06/2024 à 12:42, jean-christophe@lenormand.bzh a écrit :
> Bonjour,
> 
> Dans l’activité « 1 cotisation annuelle », la date d’expiration est le
31/12/2022 pour certains et 31/12/2023 pour d’autres.
> 
> Qu’elle serait la syntaxte SQL pour créer une recherche enregistrée afin
d’envoyer un message uniquement aux adhérents dont la cotisation expire au 31/12/2023
?
> 
> En vous remerciant d’avance,
>

Syntaxe recherche SQL

jean-christophe@lenormand.bzh

24/06/2024 13:57:58

Le 24 juin 2024 à 13:31, Jean-Christophe Engel <lesanges@zaclys.net> a écrit
:
> 
> Bonjour Jean-Christophe,
> 
> Est-ce que ceci fait ce que tu veux ?

Pas tout à fait ! :-)

Dans l’activité en question, il y a 311 adhérents dont 119 expire au 31/12/2023
c’est donc ce dernier chiffre qui devrait sortir après la recherche.

La, ton code renvoi 378 résultats (dont beaucoup de noms sont en double).

Merci pour ta réponse rapide

Syntaxe recherche SQL

lesanges at zaclys.net via aide

25/06/2024 19:48:58

Au cas où ça puisse servir à d'autres, je mets ici la réponse que j'ai
envoyée 
en privé.

En fait, j'ai confondu la date de fin de l'activité (end_date) avec la date 
d'expiration de la cotisation.

voici la requête à laquelle je suis arrivé :

SELECT
     users.id,
     users.nom as "Nom",
     strftime("%d/%m/%Y", services_users.date) as "Inscription",
     strftime("%d/%m/%Y", services_users.expiry_date) as "Fin"
FROM users
INNER JOIN services_users
     ON services_users.id_user = users.id
INNER JOIN services
     ON services_users.id_service = services.id
WHERE
     services.label = "1 Cotisation Annuelle"
AND
     strftime("%d/%m/%Y", services_users.expiry_date) = "31/12/2023"
ORDER BY users.nom
  ;

Avec cette requête, je trouve 120 résultats, dont 1 doublon.

Pour éliminer le doublon, il suffit d'ajouter DISTINCT après SELECT et de 
supprimer l'affichage de la date d'inscription


Jean-Christophe Engel

Le 24/06/2024 à 13:57, jean-christophe@lenormand.bzh a écrit :
> Le 24 juin 2024 à 13:31, Jean-Christophe Engel <lesanges@zaclys.net> a
écrit :
>>
>> Bonjour Jean-Christophe,
>>
>> Est-ce que ceci fait ce que tu veux ?
> 
> Pas tout à fait ! :-)
> 
> Dans l’activité en question, il y a 311 adhérents dont 119 expire au
31/12/2023 c’est donc ce dernier chiffre qui devrait sortir après la recherche.
> 
> La, ton code renvoi 378 résultats (dont beaucoup de noms sont en double).
> 
> Merci pour ta réponse rapide
>