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

Liste des adhérents à jour de cotisation

cpaturot at zaclys.net via aide

28/11/2019 21:34:27

Bonjour, 

Comment obtenir la liste des adhérents à jour de leurs cotisations ? 

Merci 

Christophe

Re: Liste des adhérents à jour de cotisation

BohwaZ/Garradin

01/12/2019 19:50:56

On Thu, 28 Nov 2019 21:34:05 +0100 / "cpaturot at zaclys.net via aide"
<aide@garradin.eu> said :

> Bonjour, 
> 
> Comment obtenir la liste des adhérents à jour de leurs cotisations ? 

Dans la page Membres -> Cotisations cliquer sur le nom de la cotisation…

Re: Liste des adhérents à jour de cotisation

yoan Texier

01/12/2019 21:34:17

Bonjour,

Sur cette question des adhésions à jour ou non, n'y a-t-il pas moyen de
faire une recherche complexe du même type que celle SQL présente dans
l'onglet des membres ?

Nous aimerions connaître facilement le nombre de personne ayant adhéré
entre telle date et telle date, ou d'autres recherches similaires.

Merci.

Yoan

Le 01/12/2019 à 19:50, BohwaZ/Garradin a écrit :
> On Thu, 28 Nov 2019 21:34:05 +0100 / "cpaturot at zaclys.net via
aide"
> <aide@garradin.eu> said :
>
>> Bonjour, 
>>
>> Comment obtenir la liste des adhérents à jour de leurs cotisations ? 
> Dans la page Membres -> Cotisations cliquer sur le nom de la cotisation…
>

Re: Liste des adhérents à jour de cotisation

Nicolas Frery

01/12/2019 21:49:12

Bonjour,

Je vous invite à vous renseignez sur les requêtes SQL, sur 
https://www.sqlitetutorial.net/ c'est plutôt bien expliqué.

Vous pouvez télécharger votre base de données sur votre ordinateur 
(Configuration -> Sauvegarde et restauration -> Téléchargement d'une 
sauvegarde) et tester vos requêtes sur ce fichier avec DB Browser for 
SQLite par exemple.

Dès que votre requête est prête et fonctionne comme voulu, vous pouvez 
l’exécuter dans Membres -> Recherche SQL. Si Garradin ne retourne pas 
d'erreur, vous pourrez enregistrer votre requête afin de la retrouver 
facilement dans Recherches Enregistrées.

Ci-joint, une requête permettant d'obtenir une liste des membres à jours 
ainsi que ceux ayants leur cotisation expirée jusqu'à 90 jours. Libre à 
vous de vous en inspirer.

SELECT DISTINCT
(SELECT m.id FROM membres AS m WHERE m.id = cm.id_membre) AS id,
	(SELECT m.nom FROM membres AS m WHERE m.id = cm.id_membre) AS nom,
	(SELECT m.email FROM membres AS m WHERE m.id = cm.id_membre) AS email,
	(SELECT m.ville FROM membres AS m WHERE m.id = cm.id_membre) AS ville,
			cm.date AS date_dernière_cotisation
			FROM cotisations AS c
				LEFT JOIN cotisations_membres AS cm
				WHERE (CASE WHEN c.duree IS NOT NULL THEN date(cm.date, 
'+'||(c.duree+90)||' days') >= date()
			WHEN c.fin IS NOT NULL THEN (cm.id IS NOT NULL)
			WHEN cm.id IS NOT NULL THEN 1 ELSE 0 END) != 0
				ORDER BY nom LIMIT 1000;

Nicolas Frery

Le 01/12/2019 à 21:33, yoan Texier a écrit :
> Bonjour,
> 
> Sur cette question des adhésions à jour ou non, n'y a-t-il pas moyen de

> faire une recherche complexe du même type que celle SQL présente dans 
> l'onglet des membres ?
> 
> Nous aimerions connaître facilement le nombre de personne ayant adhéré 
> entre telle date et telle date, ou d'autres recherches similaires.
> 
> Merci.
> 
> Yoan
> 
> Le 01/12/2019 à 19:50, BohwaZ/Garradin a écrit :
>> On Thu, 28 Nov 2019 21:34:05 +0100 / "cpaturot at zaclys.net via
aide"
>> <aide@garradin.eu>  said :
>>
>>> Bonjour,
>>>
>>> Comment obtenir la liste des adhérents à jour de leurs cotisations ?
>> Dans la page Membres -> Cotisations cliquer sur le nom de la
cotisation…
>>

Re: Liste des adhérents à jour de cotisation

cpaturot at zaclys.net via aide

13/06/2020 12:21:17

Bonjour, 
Cette requête ne me donne pas la liste des personnes à jour de
cotisation le jour J mais la liste des cotisations, les membres
apparaissent plusieurs fois si ils adhérent depuis plusieurs années. 
Comment doit-on adapter cette requête pour avoir le liste des membres
qui ont au moins une cotisation à jour le jour où on lance la requete.
Je dis au moins une cotisation car pour les associations multi-sections,
un membre est à jour si il a payé sa cotisation pour au moins une
section sachant que ce sont des cotisations différentes. 

Merci 

Le 01/12/2019 21:48, Nicolas Frery a écrit :

> Bonjour,
> 
> Je vous invite à vous renseignez sur les requêtes SQL, sur 
> https://www.sqlitetutorial.net/ c'est plutôt bien expliqué.
> 
> Vous pouvez télécharger votre base de données sur votre ordinateur 
> (Configuration -> Sauvegarde et restauration -> Téléchargement d'une

> sauvegarde) et tester vos requêtes sur ce fichier avec DB Browser for 
> SQLite par exemple.
> 
> Dès que votre requête est prête et fonctionne comme voulu, vous pouvez 
> l'exécuter dans Membres -> Recherche SQL. Si Garradin ne retourne pas

> d'erreur, vous pourrez enregistrer votre requête afin de la retrouver 
> facilement dans Recherches Enregistrées.
> 
> Ci-joint, une requête permettant d'obtenir une liste des membres à jours

> ainsi que ceux ayants leur cotisation expirée jusqu'à 90 jours. Libre à

> vous de vous en inspirer.
> 
> SELECT DISTINCT
> (SELECT m.id FROM membres AS m WHERE m.id = cm.id_membre) AS id,
> (SELECT m.nom FROM membres AS m WHERE m.id = cm.id_membre) AS nom,
> (SELECT m.email FROM membres AS m WHERE m.id = cm.id_membre) AS email,
> (SELECT m.ville FROM membres AS m WHERE m.id = cm.id_membre) AS ville,
> cm.date AS date_dernière_cotisation
> FROM cotisations AS c
> LEFT JOIN cotisations_membres AS cm
> WHERE (CASE WHEN c.duree IS NOT NULL THEN date(cm.date, 
> '+'||(c.duree+90)||' days') >= date()
> WHEN c.fin IS NOT NULL THEN (cm.id IS NOT NULL)
> WHEN cm.id IS NOT NULL THEN 1 ELSE 0 END) != 0
> ORDER BY nom LIMIT 1000;
> 
> Nicolas Frery
> 
> Le 01/12/2019 à 21:33, yoan Texier a écrit : Bonjour,
> 
> Sur cette question des adhésions à jour ou non, n'y a-t-il pas moyen de

> faire une recherche complexe du même type que celle SQL présente dans 
> l'onglet des membres ?
> 
> Nous aimerions connaître facilement le nombre de personne ayant adhéré 
> entre telle date et telle date, ou d'autres recherches similaires.
> 
> Merci.
> 
> Yoan
> 
> Le 01/12/2019 à 19:50, BohwaZ/Garradin a écrit : On Thu, 28 Nov 2019 21:34:05
+0100 / "cpaturot at zaclys.net via aide"
> <aide@garradin.eu>  said :
> 
> Bonjour,
> 
> Comment obtenir la liste des adhérents à jour de leurs cotisations ? Dans la
page Membres -> Cotisations cliquer sur le nom de la cotisation…

Re: Liste des adhérents à jour de cotisation

Choeur des Centraux - le Président

13/06/2020 12:37:41

Bonjour,


Le 13/06/2020 à 12:20, cpaturot at zaclys.net via aide a écrit :
> Comment doit-on adapter cette requête pour avoir le liste des membres 
> qui ont au moins une cotisation à jour le jour où on lance la requete. 
> Je dis au moins une cotisation car pour les associations 
> multi-sections, un membre est à jour si il a payé sa cotisation pour 
> au moins une section sachant que ce sont des cotisations différentes.


Il suffit d'enlever la date de cotisation, c'est elle qui tue le 
"distinct" !

Ensuite joindre le résultat avec un "max" sur la date de dernière 
cotisation par exemple.

Re: Liste des adhérents à jour de cotisation

cpaturot at zaclys.net via aide

13/06/2020 15:31:54

Ok, merci pour ta réponse mais mes notions de SQL sont limitées, j'ai
essayé de modifier la requête mais elle sort systématiquement en erreur.


Peux tu m'indiquer STP ce qu'il faut modifier précisément. 

Merci 

Le 13/06/2020 12:37, Choeur des Centraux - le Président a écrit :

> Bonjour,
> 
> Le 13/06/2020 à 12:20, cpaturot at zaclys.net via aide a écrit : 
> 
>> Comment doit-on adapter cette requête pour avoir le liste des membres 
>> qui ont au moins une cotisation à jour le jour où on lance la requete. 
>> Je dis au moins une cotisation car pour les associations 
>> multi-sections, un membre est à jour si il a payé sa cotisation pour 
>> au moins une section sachant que ce sont des cotisations différentes.
> 
> Il suffit d'enlever la date de cotisation, c'est elle qui tue le 
> "distinct" !
> 
> Ensuite joindre le résultat avec un "max" sur la date de dernière 
> cotisation par exemple.

Re: Liste des adhérents à jour de cotisation

Choeur des Centraux - le Président

14/06/2020 16:40:08

Le 13/06/2020 à 15:31, Christophe PATUROT a écrit :
>
> Ok, merci pour ta réponse mais mes notions de SQL sont limitées, j'ai 
> essayé de modifier la requête mais elle sort systématiquement en erreur.
>
> Peux tu m'indiquer STP ce qu'il faut modifier précisément.
>
Je ne suis pas totalement à l'aise avec la logique de la Where clause, 
qui vérifie si la cotisation est ou non échue, mais je te propose ceci, 
à tester et vérifier avec ta base.

SELECT m.id as id, m.nom as Nom, max(cm.date) as "Dernière cotisation"
             FROM cotisations AS c, membres as m
                 LEFT JOIN cotisations_membres AS cm
                 WHERE m.id = cm.id_membre
                 and (CASE WHEN c.duree IS NOT NULL THEN date(cm.date,
'+'||(c.duree+90)||' days') >= date()
             WHEN c.fin IS NOT NULL THEN (cm.id IS NOT NULL)
             WHEN cm.id IS NOT NULL THEN 1 ELSE 0 END) != 0
                 group by m.id ;

C'est la clause "Group by" qui commande le fonctionnement de la clause 
"Max" ; ici on a donc le max de la date de cotisation par identifiant 
utilisateur.

Voir https://www.sqlitetutorial.net/sqlite-group-by/

Pour savoir si le membre a cotisé ou non, échu ou pas, j'aurais pensé 
plus simple de juste tester s'il existe une ou plusieurs lignes dans 
cotisations_membres, et tout simplement de remonter la date la plus 
récente de ces lignes.

SELECT m.id as id, m.nom as Nom, max(cm.date) as "Dernière cotisation"
             FROM cotisations AS c, membres as m, cotisations_membres AS cm
                 WHERE m.id = cm.id_membre
                 group by m.id
                 order by Nom;

A compléter dans la WHERE clause si par exemple tu veux que l'année de 
cotisation soit 2020 :

SELECT m.id as id, m.nom as Nom, max(cm.date) as "Dernière cotisation"
             FROM cotisations AS c, membres as m, cotisations_membres AS cm
                 WHERE m.id = cm.id_membre and strftime('%Y',
cm.date) = 
"2020"
                 group by m.id order by Nom;

Bon courage.