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" <f.lassave@xxxxxxx>
À: "Galette general discussion" <galette-discussion@xxxxxxx>
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 <daniel.deveaux@xxxxxxxxxxxxxx> a écrit :
Le 29/01/2017 à 16:09, Johan Cwiklinski a écrit :
Salut,
Le 29.01.2017 13:44, f.lassave@xxxxxxx 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
Galette-discussion@xxxxxxx
https://mail.gna.org/listinfo/galette-discussion