La requête complète avec un exemple de répartition géographique liée à cette page de l’aide.

Les trois lignes SUM(CASE WHEN m.code_postal sont celles de la répartition géographique, elles sont supprimées dans la page d’aide ainsi que les deux lignes qui les encadrent : '|' as '|', qui sont la « décoration » (lignes verticales).

À la ligne AND s.id = 1 : remplacer le nombre par celui de l'activité (on le trouve dans la barre d’adresse du navigateur, à la fin).

La date de la ligne AND su.expiry_date est à modifier en fonction de la date à laquelle vous avez commencé à utiliser le logiciel.

SELECT strftime('%Y', su.expiry_date) as 'Année de Cotisation',
            SUM(CASE WHEN  cast(strftime('%Y', su.expiry_date) - strftime('%Y', date_inscription) as int) == 0 THEN 0 ELSE 1 END) as 'Anciens adhérents',  
            SUM(CASE WHEN  cast(strftime('%Y', su.expiry_date) - strftime('%Y', date_inscription) as int) == 0 THEN 1 ELSE 0 END) as 'Nouveaux adhérents',    
            '|' as '|',
SUM(CASE WHEN  m.code_postal BETWEEN 76000 AND 76100 THEN 1 ELSE 0 END) [Rouen],
SUM(CASE WHEN  m.code_postal BETWEEN 76101 AND 76999 THEN 1 ELSE 0 END) [Seino-Marin],
SUM(CASE WHEN  m.code_postal NOT BETWEEN 76000 AND 76999 THEN 1 ELSE 0 END) [Autres],
'|' as ' | ',
COUNT(m.id) [Total Général]
FROM membres as m, services as s, services_users as su, services_fees as sf
WHERE su.id_user = m.id
  AND sf.id = su.id_fee
AND s.id = 2
AND su.expiry_date > '2019-12-31'
GROUP BY su.expiry_date
ORDER BY su.expiry_date DESC