[Galette-discussion] Re: [Galette-discussion] Re: [Galette-discussion] Script d'export

2020-01-21 Par sujet Johan
Le 21 janvier 2020 20:31:47 GMT+01:00, Guillaume Rousse 
 a écrit :
>
>
>Le 21/01/2020 à 11:49, JLM a écrit :
>> Bonjour,
>> 
>> Bonne année à tous et surtout à Galette, puisse-t-elle continuer à se
>bonifier d’année en année et continuer à nous rendre service au
>quotidien !
>> 
>> Je m’intéresse depuis peu à la personnalisation des scripts d’export.
>Je parviens à exporter dans un même fichier les données de plusieurs
>tables grâce à la fonction “inner join”, mais j’ai deux problèmes :
>> 
>> - je n’arrive pas à récupérer une info dans une troisième table qui
>n’a pas de champ commun avec toutes les tables impliquées dans le
>script, mais seulement avec une seule. Par exemple, avec le script
>ci-dessous, en partant de l’id adhérent, je récupère sa cotisation dans
>la table galette_cotisations, ainsi que son numéro de groupe dans la
>table galette_groups_members, mais je ne sais pas comment récupérer le
>nom du groupe qui correspond à ce numéro de groupe, et qui se trouve
>dans une nouvelle table galette_groups…Il te faut une 3e jointure:
>INNER JOIN galette_groups ON 
>(galette_groups_members.id_group=galette_groups.id_group)
>et remplacer id_group par group_name dans la liste des champs souhaités
>
>Et si tu veux rendre le résultat un poil plus lisible, tu peux utiliser
>
>des aliases:
>SELECT nom_adh, prenom_adh, montant_cotis, group_name, date_fin_cotis
>FROM galette_adherents AS adherents
>INNER JOIN galette_cotisations AS cotisations ON
> (adherents.id_adh=cotisations.id_adh)
>INNER JOIN galette_groups_members AS members ON
> (members.id_adh=adherents.id_adh)
>INNER JOIN galette_groups AS groups ON
> (members.id_group=groups.id_group)
>
>> - ensuite, ce script me permet de récupérer toutes les cotisations
>des adhérents, or, je ne souhaite exporter que la dernière cotisation
>en date. Là, j’ai toutes les cotisations cumulées depuis qu’ils ont
>commencé à adhérer
>Une condition de tri décroissante suivie d'une limite devrait 
>correspondre à ton besoin:
>ORDER BY date_enreg DESC
>LIMIT 1
>
>Non testé, je n'ai ni groupes, ni cotisations dans ma base.
>
>A+

Salut, 

Les conseils de Guillaume t'aideront bien. Juste deux précisions :
- si tu utilises du INNER JOIN sur les groupes, tu obtiendra les adhérents qui 
font partie d'un groupe, mais pas les adhérents qui n'en possèdent aucun ; il 
faut probablement du LEFT JOIN
- pour ne récupérer qu'une seule contribution, peut être qu'il faudra utiliser 
genre un GROUP BY. 

++
Johan

--
Galette users discussions

http://galette.eu - http://galette.eu/documentation
http://bugs.galette.eu/projects/galette/

List documentation: https://listengine.tuxfamily.org/lists.galette.eu/users/



[Galette-discussion] RE: [Galette-discussion] Re: [Galette-discussion] Script d'export

2020-01-21 Par sujet CLEMENT Bernard
L'arrivée de ces exports est une excellente nouvelle. Je pense que beaucoup de 
trésoriers ou secrétaires utilisant galette les attendent. 
Je vous encourage 
Amicalement 
 
Envoyé depuis l'application Mail Orange

Le 21/01/2020, à 20:32, Guillaume Rousse a écrit :



Le 21/01/2020 à 11:49, JLM a écrit :
> Bonjour,
> 
> Bonne année à tous et surtout à Galette, puisse-t-elle continuer à se 
> bonifier d’année en année et continuer à nous rendre service au quotidien !
> 
> Je m’intéresse depuis peu à la personnalisation des scripts d’export. Je 
> parviens à exporter dans un même fichier les données de plusieurs tables 
> grâce à la fonction “inner join”, mais j’ai deux problèmes :
> 
> - je n’arrive pas à récupérer une info dans une troisième table qui n’a pas 
> de champ commun avec toutes les tables impliquées dans le script, mais 
> seulement avec une seule. Par exemple, avec le script ci-dessous, en partant 
> de l’id adhérent, je récupère sa cotisation dans la table 
> galette_cotisations, ainsi que son numéro de groupe dans la table 
> galette_groups_members, mais je ne sais pas comment récupérer le nom du 
> groupe qui correspond à ce numéro de groupe, et qui se trouve dans une 
> nouvelle table galette_groups…Il te faut une 3e jointure:
INNER JOIN galette_groups ON 
(galette_groups_members.id_group=galette_groups.id_group)
et remplacer id_group par group_name dans la liste des champs souhaités

Et si tu veux rendre le résultat un poil plus lisible, tu peux utiliser 
des aliases:
SELECT nom_adh, prenom_adh, montant_cotis, group_name, date_fin_cotis
FROM galette_adherents AS adherents
INNER JOIN galette_cotisations AS cotisations ON
 (adherents.id_adh=cotisations.id_adh)
INNER JOIN galette_groups_members AS members ON
 (members.id_adh=adherents.id_adh)
INNER JOIN galette_groups AS groups ON
 (members.id_group=groups.id_group)

> - ensuite, ce script me permet de récupérer toutes les cotisations des 
> adhérents, or, je ne souhaite exporter que la dernière cotisation en date. 
> Là, j’ai toutes les cotisations cumulées depuis qu’ils ont commencé à adhérer
Une condition de tri décroissante suivie d'une limite devrait 
correspondre à ton besoin:
ORDER BY date_enreg DESC
LIMIT 1

Non testé, je n'ai ni groupes, ni cotisations dans ma base.

A+
-- 
Guillaume

-- 
Galette users discussions

http://galette.eu - http://galette.eu/documentation
http://bugs.galette.eu/projects/galette/

List documentation: https://listengine.tuxfamily.org/lists.galette.eu/users/


--
Galette users discussions

http://galette.eu - http://galette.eu/documentation
http://bugs.galette.eu/projects/galette/

List documentation: https://listengine.tuxfamily.org/lists.galette.eu/users/



[Galette-discussion] Re: [Galette-discussion] Script d'export

2020-01-21 Par sujet Guillaume Rousse




Le 21/01/2020 à 11:49, JLM a écrit :

Bonjour,

Bonne année à tous et surtout à Galette, puisse-t-elle continuer à se bonifier 
d’année en année et continuer à nous rendre service au quotidien !

Je m’intéresse depuis peu à la personnalisation des scripts d’export. Je 
parviens à exporter dans un même fichier les données de plusieurs tables grâce 
à la fonction “inner join”, mais j’ai deux problèmes :

- je n’arrive pas à récupérer une info dans une troisième table qui n’a pas de 
champ commun avec toutes les tables impliquées dans le script, mais seulement 
avec une seule. Par exemple, avec le script ci-dessous, en partant de l’id 
adhérent, je récupère sa cotisation dans la table galette_cotisations, ainsi 
que son numéro de groupe dans la table galette_groups_members, mais je ne sais 
pas comment récupérer le nom du groupe qui correspond à ce numéro de groupe, et 
qui se trouve dans une nouvelle table galette_groups…Il te faut une 3e jointure:
INNER JOIN galette_groups ON 
(galette_groups_members.id_group=galette_groups.id_group)

et remplacer id_group par group_name dans la liste des champs souhaités

Et si tu veux rendre le résultat un poil plus lisible, tu peux utiliser 
des aliases:

SELECT nom_adh, prenom_adh, montant_cotis, group_name, date_fin_cotis
FROM galette_adherents AS adherents
INNER JOIN galette_cotisations AS cotisations ON
(adherents.id_adh=cotisations.id_adh)
INNER JOIN galette_groups_members AS members ON
(members.id_adh=adherents.id_adh)
INNER JOIN galette_groups AS groups ON
(members.id_group=groups.id_group)


- ensuite, ce script me permet de récupérer toutes les cotisations des 
adhérents, or, je ne souhaite exporter que la dernière cotisation en date. Là, 
j’ai toutes les cotisations cumulées depuis qu’ils ont commencé à adhérer
Une condition de tri décroissante suivie d'une limite devrait 
correspondre à ton besoin:

ORDER BY date_enreg DESC
LIMIT 1

Non testé, je n'ai ni groupes, ni cotisations dans ma base.

A+
--
Guillaume

--
Galette users discussions

http://galette.eu - http://galette.eu/documentation
http://bugs.galette.eu/projects/galette/

List documentation: https://listengine.tuxfamily.org/lists.galette.eu/users/