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

Requêtes et SQL. Discussion :

Regroupement par année


Sujet :

Requêtes et SQL.

  1. #1
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 65
    Par défaut Regroupement par année
    Salut,

    Je voudrais faire un requête a l’aide de l’assistant d’Access pas en vba

    J’ai des dates du type jj/mm/aaaa et je voudrais faire un regoupement par annéé

    Dans critère, j’avais pensé à mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    format([DateDepart];"aaaa") ou Année([DateDepart])
    mais fonctionne pas

    Quelqu’un aurait une solution ?

    Merci d’avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Bonjour,
    il s'agit bien de la bonne syntaxe (Année())
    encore faut-il s'assurer que le champ est bien de type Date,
    et si possible, si tu nous explicites un peu le
    mais fonctionne pas
    ca pourra nous donner des pistes
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 65
    Par défaut
    re,


    Merci de ton aide, donc quand j'exécute ma requête il n'y a rien dedans juste le nom de la colonne. Mon DateDepart est bien un type date

    par contre j'ai vérifié et j'entre Année([DateDepart]) si je met ton écriture y me rajoute des "" (Année("DateDepart")) pour rechercher un caractère.

    Voila la situation

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    spécifie aussi le nom de la table dans laquelle tu vas chercher ton champs
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 65
    Par défaut
    je viens de le faire a ta maniere
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (Année([Doc]![DateDepart]))
    toujours pareil ma requete est vide

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    ok,
    peux-tu nous montrer le code SQL de ta requête stp ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  7. #7
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 65
    Par défaut
    voila ma requete en mod SQL

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    TRANSFORM Count(Doc.DateDepart) AS CompteDeDateDepart
    SELECT Doc.Gravité
    FROM Doc
    WHERE (((Doc.DateDepart)=(Year([Doc]![DateDepart]))))
    GROUP BY Doc.Gravité, Doc.DateDepart
    PIVOT Doc.DateDepart;
    merci de ton aide

  8. #8
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut


    on a du mal se comprendre

    à moins d'avoir des dates seulement en année, il est logique que tu ne puisses pas avoir d'enregistrements, vu qu'à aucun moment une date ne peut être égale à son année

    tu souhaites voir apparaitre dans ta requête d'analyse croisée les années c'est bien cela ?
    ta clause where empêche toute manipulation.

    Soit tu affiches la date, soit l'année, soit les deux, mais tu ne peux avoir un test date = année, sinon 0 enregistrement en sortie
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  9. #9
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 65
    Par défaut
    re,

    donc je voudrais faire un regoupement par année dans ma table j'ai un champ DateDepart de type date et de fomat jj/mm/aaaa

    moi je voudrais les regrouper par année

  10. #10
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Déjà,
    si on oublie la requête d'analyse croisée...
    tu veux avoir le nombre de date par année c'est bien cela ?
    Ca donnerait ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Count(Doc.DateDepart) AS CompteDeDateDepart, Year(Doc.DatePart)
    FROM Doc
    GROUP BY Year(Doc.DateDepart)
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  11. #11
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 65
    Par défaut
    okai, c'est exactement cela mais je voudrais que cela fasse un cumule

    si en 2003 y a 2 enregistrements et en 2004 10 je voudrais qui m'affiche 12 pour 2004

    donc pour le moment j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Count(Doc.DateDepart) AS CompteDeDateDepart, Year(Doc.DateDepart) AS Expr1, Doc.Gravité
    FROM Doc
    GROUP BY Year(Doc.DateDepart), Doc.Gravité;

  12. #12
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    si tu nous disais tout de suite l'affichage que tu souhaites

    sans vba, ca va compliquer pas mal les requêtes par contre.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  13. #13
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 65
    Par défaut
    okai bah en vba alors

    je crains deja le pire

  14. #14
    Membre habitué
    Femme Profil pro
    Inscrit en
    Avril 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Avril 2009
    Messages : 12
    Par défaut
    Hello,
    Pour faire un cumul il faut utiliser la fonction DSum () dans une nouvelle requête. Imaginons que la requete ci dessous tu l'aies appelé Requete1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Count(Doc.DateDepart) AS CompteDeDateDepart, Year(Doc.DateDepart) AS Expr1, Doc.Gravité
    FROM Doc
    GROUP BY Year(Doc.DateDepart), Doc.Gravité;
    Tu crées une nouvelle requete dans laquelle tu mets un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Requete2.[Year(Doc.DateDepart)], DSum("[CompteDeDateDepart]","Requete","[Year(Doc.DateDepart)]<=" & [Year(Doc.DateDepart)]) AS Cumul
    FROM Requete;
    (J'avais le même souci que toi jusque y'a 5 min Etila )

    J'espère que c'est bien ça que tu voulais !
    Bonne continuation ++

  15. #15
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 65
    Par défaut
    merci Dragi je pense que c'est exactement cela mais j'ai une erreur

    mise entre crochets non valide du nom 'requete1.[Year(Doc.DateDepart)]'

    quand je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT requete1.[Year(Doc.DateDepart)], DSum("[CompteDeDateDepart]","requete1","[Year(Doc.DateDepart)]<=" & [Year(Doc.DateDepart)]) AS Cumul
    FROM requete1;

    naturellement ma premiere requête s'apelle requete1 pourrais-tu me donner la bonne ecriture? :p

  16. #16
    Membre habitué
    Femme Profil pro
    Inscrit en
    Avril 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Avril 2009
    Messages : 12
    Par défaut
    Moi je serai toi je renommerai le champ Year(Doc.DateDepart) dans ta 1ere requete genre AnneeDateDepart et du coup tu appelles [AnneeDateDepart] da
    ... ns la 2e requete pour éviter les conflits entre les fonctions...

  17. #17
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 65
    Par défaut
    hum... tu veux que je renome DateDepart en AnneeDateDepart?

    ca changera rien

  18. #18
    Membre habitué
    Femme Profil pro
    Inscrit en
    Avril 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Avril 2009
    Messages : 12
    Par défaut
    non c'est Expr1 en fait j'avais pas vu que tu l'avais deja renomme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Requete2.[Expr1], DSum("[CompteDeDateDepart]","Requete","[Expr1]<=" & [Expr1]) AS Cumul
    FROM Requete;

  19. #19
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 65
    Par défaut
    Ca commence a etre bien

    Quand j’execute la requete j’ai :

    requete2
    Expr1 Cumul
    2003 1
    2004 715
    2004 715
    2005 774
    2005 774


    Mais j'ai un problème comme tu peux le voir y a plusieur fois la meme année (avec la meme valeur)ce qui est dû a ma gravité car il y a des <70 en 2004 des entre 70 et 200 en 2004


    si on regarde ma requete1

    CompteDeDateDepart Expr1 Gravité
    1 2003 < 70
    700 2004 < 70
    14 2004 Entre 70 et 200
    55 2005 < 70
    4 2005 Entre 70 et 200
    153 2006 < 70
    18 2006 Entre 70 et 200
    2 2006 Entre 200 et 400
    45 2007 < 70
    8 2007 Entre 70 et 200
    137 2008 < 70
    24 2008 Entre 70 et 200
    4 2008 Entre 200 et 400
    7 2009 < 70
    12 2009 Entre 70 et 200

    Comment faire pour qu’il cumule les années et la gravité pour avoir


    2003 1 <70
    2004 701 <70
    2004 14 entre 70 et 200
    2005 755 <70
    2005 18 entre 70 et 200
    .
    .
    .
    j'ai esssayé mais ... j’ai cela

    requete2
    Expr1 Cumul Gravité
    2003 1 < 70
    2004 715 < 70
    2004 715 Entre 70 et 200
    2005 774 < 70
    2005 774 Entre 70 et 200

    je supose que je fais mal mon cumule pourrais-tu encore un peu m'aider? :p

  20. #20
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 45
    Par défaut
    ton problème m'interesse

    je dois faire la meme chose mais avec des etats d'avancement

Discussions similaires

  1. [XL-2003] Regrouper par année et cumul
    Par Etila dans le forum Excel
    Réponses: 9
    Dernier message: 23/04/2009, 10h50
  2. Regroupement par année
    Par bob75000 dans le forum Access
    Réponses: 6
    Dernier message: 22/08/2006, 16h15
  3. Réponses: 5
    Dernier message: 29/09/2004, 11h05
  4. [DB2]Requête regroupement par intervals
    Par sm dans le forum DB2
    Réponses: 8
    Dernier message: 01/09/2004, 17h19
  5. Regroupement par mois
    Par fplanglois dans le forum SQL
    Réponses: 7
    Dernier message: 29/07/2003, 16h32

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