IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Regrouper un état par période [AC-2019]


Sujet :

IHM

  1. #1
    Membre habitué Avatar de C15nantes
    Homme Profil pro
    retraité
    Inscrit en
    Février 2011
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2011
    Messages : 379
    Points : 137
    Points
    137
    Par défaut Regrouper un état par période
    Bonjour à tous et à toutes,

    L'association dont je gère la base a perdu beaucoup de ses adhérents depuis sa création en 1983.
    J'ai un état qui récapitule tous ces décès par date (DateDeces).

    Il est basé sur la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT [T Adhérents].N°Adherent, [T Adhérents].Nom, [T Adhérents].Prenom, [T Adhérents].DateDeces
    FROM [T Adhérents]
    WHERE ((([T Adhérents].MotifRadiation)="décès"))
    ORDER BY [T Adhérents].DateDeces DESC;


    Je voudrais faire un état qui récapitule ces adhérents décédés regroupés par périodes de 10 ans,
    2020-2029, 2010-2019, 2000-2009...1987-1989, (1987 est la date du 1er décès enregistré) dans cet ordre.

    Je n'arriver pas à construire l'expression sur laquelle ce regroupement doit être basé.

    Merci de votre aide

    C15

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 769
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 769
    Points : 14 810
    Points
    14 810
    Par défaut
    bonsoir,
    une solution avec PremVrai (Switch en anglais):
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT Switch(Year(DateDeces) between 1987 and 1989,"1987-1989",Year(DateDeces) between 1990 and 1999, "1990-1999",Year(DateDeces) between 2000 and 2009,"2000-2009",Year(DateDeces) between 2010 and 2019,"2010-2019",Year(DateDeces) between 2020 and 2029,"2020-2029") as PeriodDeces,
    [N°Adherent], [Nom], [Prenom], [DateDeces]
    FROM [T Adhérents]
    WHERE [MotifRadiation]="décès"
    ORDER BY DateDeces DESC;

  3. #3
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Salut
    Et pour compléter la première proposition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT N°Adherent, DateDeces, Partition(Year([DateDeces]),1980,2050,10) AS Tranche
    FROM [T Adhérents]
    WHERE MotifRadiation = "décès"
    ORDER BY DateDeces;

  4. #4
    Membre habitué Avatar de C15nantes
    Homme Profil pro
    retraité
    Inscrit en
    Février 2011
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2011
    Messages : 379
    Points : 137
    Points
    137
    Par défaut
    Bonjour à tous les deux,

    Désolé, je n'avais pas vu vos réponses.

    Entre temps, je me suis rappelé que j'avais une requête répartissant des adhérents par tranches de...

    Je m'en suis inspiré pour modifier mon état (et non la requête source)

    J'ai fait un regroupement basé sur l'expression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Partition(Année([DateDeces]);1980;2040;10)
    en ordre décroissant, par valeur entière, sans totaux, avec titre, avec section d'en-tête, sans section de pied de page,

    avec un autre niveau de tri basé sur [DateDeces], du plus récent au plus ancien.

    Dans mon en-tête de section, j'ai mis une zone de texte dont la source est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ="Années" & " " & Partition(Année([DateDeces]);1980;2040;10)
    En P.J. voilà ce que donne la 1ère page.

    Je considère donc le problème comme résolu.

    Merci en core de votre aide.

    A+
    C15
    Images attachées Images attachées

  5. #5
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 769
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 769
    Points : 14 810
    Points
    14 810
    Par défaut
    bonsoir,
    étrange... je connaissais bien OVER (PARTITION BY) quand je développais en Oracle SQL, mais je ne savais pas que la fonction PARTITION() existait en Access.
    Comme quoi, on en apprend tous les jours

  6. #6
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Salut,
    Tu te fais vieux
    De mémoire d'éléphant, nous avions déjà traité tous les 3 un problème identique avec C15. La preuve dans son dernier fil il l'évoque.
    Citation Envoyé par tee_grandbois Voir le message
    bonsoir,
    étrange... je connaissais bien OVER (PARTITION BY) quand je développais en Oracle SQL, mais je ne savais pas que la fonction PARTITION() existait en Access.
    Comme quoi, on en apprend tous les jours

  7. #7
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 769
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 769
    Points : 14 810
    Points
    14 810
    Par défaut
    Citation Envoyé par hyperion13
    Tu te fais vieux
    je me ne le fais pas: je le suis ! d'où quelques problèmes de mémoire.

  8. #8
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 769
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 769
    Points : 14 810
    Points
    14 810
    Par défaut
    Citation Envoyé par hyperion13 Voir le message
    De mémoire d'éléphant, nous avions déjà traité tous les 3 un problème identique avec C15. La preuve dans son dernier fil il l'évoque.
    pour en revenir à la mémoire, je fais plutôt confiance à la Recherche avancée du forum et j'ai trouvé ceci: https://www.developpez.net/forums/d1...ranches-d-age/ il ne s'agit pas de C15 mais de Liegecam64.
    Effectivement, tu fais allusion à PARTITION mais sans proposer de code, du coup, ta solution est un peu passée à la trappe

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Regroupement dates par période de 5 jours
    Par julien.Bourrier dans le forum R
    Réponses: 1
    Dernier message: 23/03/2017, 12h16
  2. Regroupement par période
    Par Flodelarab dans le forum Langage SQL
    Réponses: 3
    Dernier message: 10/07/2014, 00h39
  3. Regrouper date par période (supérieure à une année)
    Par Ramboleretour dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 18/04/2014, 08h21
  4. [AC-2010] 1 état par regroupement
    Par Deldev dans le forum IHM
    Réponses: 2
    Dernier message: 22/01/2013, 12h49
  5. Exporter un état par regroupement
    Par MaryR dans le forum IHM
    Réponses: 8
    Dernier message: 31/03/2009, 23h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo