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

Recherche SQL

Frédéric Escudero

18/11/2016 05:57:59

Bonjour,

serait-il possible d'avoir des modèles de requêtes SQL et/ou les tables et
champs qui peuvent être requêtés ?

Merci,
Frédéric.

Re: Recherche SQL

BohwaZ/Garradin

18/11/2016 06:22:41

On Fri, 18 Nov 2016 15:56:48 +1100 / "Frédéric Escudero"
<frederic.escudero@gmail.com> said :

> 
> Bonjour,
> 
> serait-il possible d'avoir des modèles de requêtes SQL et/ou les
> tables et champs qui peuvent être requêtés ?

Le schéma de la table de recherche est affiché à droite du champ de
recherche.

Re: Recherche SQL

Frédéric Escudero

18/11/2016 06:30:21

Oui effectivement, mais je suppose que les cotisation d'un membre sont dans
une autre table ?
Est-il possible de lancer une requête sur les membres qui n'ont pas cotisé
ou ne sont pas à jour de leur cotisations ?

Le 18 novembre 2016 à 16:21, BohwaZ/Garradin <garradin@garradin.eu> a écrit
:

>
> On Fri, 18 Nov 2016 15:56:48 +1100 / "Frédéric Escudero"
> <frederic.escudero@gmail.com> said :
>
> >
> > Bonjour,
> >
> > serait-il possible d'avoir des modèles de requêtes SQL et/ou les
> > tables et champs qui peuvent être requêtés ?
>
> Le schéma de la table de recherche est affiché à droite du champ de
> recherche.
>
> --
> . ____
>  / ___|  Liste d'entraide des utilisateurs de Garradin
> | |  _   http://garradin.eu/
> | |_| |
>  \____|  Désinscription : http://garradin.eu/aide/
>

Re: Recherche SQL

BohwaZ/Garradin

18/11/2016 07:26:58

On Fri, 18 Nov 2016 16:28:58 +1100 / "Frédéric Escudero"
<frederic.escudero@gmail.com> said :

> 
> Oui effectivement, mais je suppose que les cotisation d'un membre
> sont dans une autre table ?

Oui, mais je te déconseille de t'amuser avec ça.

> Est-il possible de lancer une requête sur les membres qui n'ont pas
> cotisé ou ne sont pas à jour de leur cotisations ?

Réponse courte : non.

Réponse longue : bon courage :) voici la requête pour déterminer si un
membre est à jour ou pas :

SELECT c.*,
CASE WHEN c.duree IS NOT NULL THEN date(cm.date, \'+\'||c.duree||\'
days\') >= date() WHEN c.fin IS NOT NULL THEN c.fin >= date()
WHEN cm.id IS NOT NULL THEN 1 ELSE 0 END AS a_jour,
CASE WHEN c.duree IS NOT NULL THEN date(cm.date, \'+\'||c.duree||\'
days\') WHEN c.fin IS NOT NULL THEN c.fin ELSE 1 END AS expiration
FROM cotisations AS c 
	LEFT JOIN cotisations_membres AS cm ON cm.id_cotisation = c.id
AND cm.id_membre = ? WHERE c.id = ? ORDER BY cm.date DESC

Re: Recherche SQL

Frédéric Escudero

18/11/2016 09:49:24

OK, je vais opter pour la réponse courte ;)

Le 18 nov. 2016 17:26, "BohwaZ/Garradin" <garradin@garradin.eu> a
écrit :

>
> On Fri, 18 Nov 2016 16:28:58 +1100 / "Frédéric Escudero"
> <frederic.escudero@gmail.com> said :
>
> >
> > Oui effectivement, mais je suppose que les cotisation d'un membre
> > sont dans une autre table ?
>
> Oui, mais je te déconseille de t'amuser avec ça.
>
> > Est-il possible de lancer une requête sur les membres qui n'ont pas
> > cotisé ou ne sont pas à jour de leur cotisations ?
>
> Réponse courte : non.
>
> Réponse longue : bon courage :) voici la requête pour déterminer si un
> membre est à jour ou pas :
>
> SELECT c.*,
> CASE WHEN c.duree IS NOT NULL THEN date(cm.date,
\'+\'||c.duree||\'
> days\') >= date() WHEN c.fin IS NOT NULL THEN c.fin >= date()
> WHEN cm.id IS NOT NULL THEN 1 ELSE 0 END AS a_jour,
> CASE WHEN c.duree IS NOT NULL THEN date(cm.date,
\'+\'||c.duree||\'
> days\') WHEN c.fin IS NOT NULL THEN c.fin ELSE 1 END AS expiration
> FROM cotisations AS c
>         LEFT JOIN cotisations_membres AS cm ON cm.id_cotisation = c.id
> AND cm.id_membre = ? WHERE c.id = ? ORDER BY cm.date DESC
>
> --
> . ____
>  / ___|  Liste d'entraide des utilisateurs de Garradin
> | |  _   http://garradin.eu/
> | |_| |
>  \____|  Désinscription : http://garradin.eu/aide/
>