Re: [Galette-discussion] Export paramétrables : requête récurssive

2017-01-29 Par sujet f . lassave
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é :

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



Encore merci pour votre aide ! 
@++
Fred


- Mail original -
De: "Frederic LASSAVE" 
À: "Galette general discussion" 
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  a écrit : 








Le 29/01/2017 à 16:09, Johan Cwiklinski a écrit : 


Salut, 

Le 29.01.2017 13:44, f.lass...@free.fr 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@gna.org
https://mail.gna.org/listinfo/galette-discussion

___
Galette-discussion mailing list
Galette-discussion@gna.org
https://mail.gna.org/listinfo/galette-discussion

Re: [Galette-discussion] Export paramétrables : requête récurssive

2017-01-29 Par sujet Frederic LASSAVE
Super ! Merci !Je suis effectivement arrivé à cette conclusion !... ;)Merci beaucoup !!!Le 29 janv. 2017 17:09, DDgallo  a écrit :
  

  
  



Le 29/01/2017 à 16:09, Johan Cwiklinski
  a écrit :

Salut,
  
  
  Le 29.01.2017 13:44, f.lassave@free.fr 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@gna.org
https://mail.gna.org/listinfo/galette-discussion

Re: [Galette-discussion] Export paramétrables : requête récurssive

2017-01-29 Par sujet DDgallo



Le 29/01/2017 à 16:09, Johan Cwiklinski a écrit :

Salut,

Le 29.01.2017 13:44, f.lass...@free.fr 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@gna.org
https://mail.gna.org/listinfo/galette-discussion

Re: [Galette-discussion] Export paramétrables : requête récurssive

2017-01-29 Par sujet Johan Cwiklinski

Salut,

Le 29.01.2017 13:44, f.lass...@free.fr a écrit :

Bonjour à tous,

Je me suis re-lancé dans le SQL ...
Je souhaite créer des exports paramétrables pour les personnes du
staff de mon club de Judo ...

Le premier export demandé est la liste des adhérents, sous forme CSV,
[...]

Le souci est que les adhérents "enfants" n'ont pas de coordonnées.
Pour remonter les coordonnées de leurs "parents", j'ai cru comprendre
qu'il me fallait faire une requête récursive (les infos "parents"
étant aussi dans la table "galette_adherents")!?...


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.



Ma première question est : est-il passible de faire ces types de
requêtes dans le "exports.xml" ?


Bah vu que ce sont des "simples" requêtes SQL ; à priori, pas de soucis.

Ma seconde : est-ce qu'une âme charitable pourrait venir à mon secours 
?


Je passe mon tour :p

++
--
Johan

___
Galette-discussion mailing list
Galette-discussion@gna.org
https://mail.gna.org/listinfo/galette-discussion