Merci beaucoup ! Je suis arrivé à mes fins ! :D
Je sais pas si ça pourra aider, du coup, je colle la requête que j'ai utilisé :
<query>SELECT
`ad1`.prenom_adh,
`ad1`.nom_adh,
`ad1`.ddn_adh,
`g`.group_name,
CASE WHEN `ad1`.email_adh != "" THEN `ad1`.email_adh
ELSE `ad2`.email_adh
END,
CASE WHEN `ad1`.tel_adh != "" THEN `ad1`.tel_adh
ELSE `ad2`.tel_adh
END,
CASE WHEN `ad1`.adresse_adh != "" THEN `ad1`.adresse_adh
ELSE `ad2`.adresse_adh
END,
CASE WHEN `ad1`.cp_adh != "" THEN `ad1`.cp_adh
ELSE `ad2`.cp_adh
END,
CASE WHEN `ad1`.ville_adh != "" THEN `ad1`.ville_adh
ELSE `ad2`.ville_adh
END
FROM galette_groups AS `g` INNER JOIN
(galette_groups_members INNER JOIN galette_adherents AS `ad1` ON
galette_groups_members.id_adh = `ad1`.id_adh) ON `g`.id_group =
galette_groups_members.id_group INNER JOIN `galette_statuts` AS `p` ON
`ad1`.`id_statut`=`p`.`id_statut` LEFT JOIN `galette_cotisations` AS `ct` ON
`ct`.`id_adh`=`ad1`.`id_adh` LEFT JOIN galette_adherents AS `ad2` ON
`ad2`.id_adh = `ad1`.parent_id
WHERE `ad1`.activite_adh=true
ORDER BY `nom_adh` ASC, `prenom_adh` ASC
</query>
Encore merci pour votre aide !
@++
Fred
----- Mail original -----
De: "Frederic LASSAVE" <[email protected]>
À: "Galette general discussion" <[email protected]>
Envoyé: Dimanche 29 Janvier 2017 17:34:10
Objet: Re: [Galette-discussion] Export paramétrables : requête récurssive
Super ! Merci !
Je suis effectivement arrivé à cette conclusion !... ;)
Merci beaucoup !!!
Le 29 janv. 2017 17:09, DDgallo <[email protected]> a écrit :
Le 29/01/2017 à 16:09, Johan Cwiklinski a écrit :
Salut,
Le 29.01.2017 13:44, [email protected] a écrit :
Bonjour à tous,
Je me suis re-lancé dans le SQL ...
C'est possible... Dans Galette, je n'utilise pas ce type de chose ; l'adhérent
parent est chargé au besoin via une nouvelle requête et on récupère les infos
depuis ce denier.
Pour le coup, il faut probablement une sous requête qui va aller récupérer les
infos complémentaires ; et des conditions pour prendre l'adresse de l'adhérent
ou de son parent s'il n'en possède pas.
On peut très bien faire une jointure sur la même table pour faire ce type de
substitution ; exemple
SELECT
`ad1`.`nom_adh` AS `nom`,
`ad1`.`prenom_adh` AS `prenom`,
CASE WHEN `ad1`.`adresse_adh` != '' THEN `ad1`.`adresse_adh`
ELSE `ad2`.`adresse_adh`
END AS `adresse`,
`ad1`.`parent_id` AS `parent`
FROM
`galette_adherents` as `ad1`
LEFT OUTER JOIN `galette_adherents` AS `ad2` ON `ad2`.`id_adh` =
`ad1`.`parent_id`
WHERE
1
Le "LEFT OUTER JOIN" permet d'explorer toute la table ad1 ; un "(INNER) JOIN"
simple se limiterait aux enregistrements qui ont effectivement un lien 'parent'
Daniel
_______________________________________________
Galette-discussion mailing list
[email protected]
https://mail.gna.org/listinfo/galette-discussion
_______________________________________________
Galette-discussion mailing list
[email protected]
https://mail.gna.org/listinfo/galette-discussion