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

Access Discussion :

[sql] Erreur n'est pas fonction d'agrégat


Sujet :

Access

  1. #1
    Membre habitué Avatar de Jahprend
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    255
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 255
    Points : 165
    Points
    165
    Par défaut [sql] Erreur n'est pas fonction d'agrégat
    Bonjour,

    Tout d'abord pour les fans du F1 ou de la FAQ, je precise que la communication est pour moi la meilleure des aides.

    J'ai une erreur du type "n'est pas fonction d'agrégat", il me semble comprendre pourquoi mais par contre je ne comprends pas pourquoi je suis obligé de faire mon GROUP BY sur tout les champs vu que au final ca me donne n'importe quoi
    Voici mon code SQL:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT DISTINCTROW Format$([Marge des affaires].[Date de commande],'mmmm yyyy') AS [Date par mois], [Marge des affaires].[Affaire conclue], [Marge des affaires].[Affectation CA], Sum([Marge des affaires].[Prix total de vente de l'affaire]) AS [Somme De Prix total de vente de l'affaire], Sum([Marge des affaires].[Marge Brute]) AS [Somme De Marge Brute]
    FROM [Marge des affaires]
    GROUP BY Month([Marge des affaires].[Date]), Year([Marge des affaires].[Date]), Format$([Marge des affaires].[Date de commande],'mmmm yyyy'), [Marge des affaires].[Affaire conclue], [Marge des affaires].[Affectation CA]
    HAVING ((([Marge des affaires].[Affectation CA])="Dien LUONG") AND (([Marge des affaires].[Affaire conclue])=True) AND ((Format$([Marge des affaires].[Date de commande],'mmmm yyyy')) Like [Choix du mois puis de l'année (ex: mars 2002)] & "*"));
    J'aimerai faire mon GROUP BY uniquement avec Month([Marge des affaires].[Date]), Year([Marge des affaires].[Date]), est-ce possible?
    On peut être pathéthique sans faire l'éthique du pâté.

  2. #2
    Membre habitué Avatar de Jahprend
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    255
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 255
    Points : 165
    Points
    165
    Par défaut
    Mal aimé, je suis le mal aimé , les gens me connaissent tel que je veux me montrer, ca fait deux jours que je poste et meme pas un gars pour regarder...
    On peut être pathéthique sans faire l'éthique du pâté.

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 155
    Points : 112
    Points
    112
    Par défaut
    Il me semble bien que dans le GROUP BY tu dois avoir tous les champs qui sont présent dans le select.

    Est la requête tel quel apparait dans ton code ? (si c'est le cas c'est pas beau du tout car les espaces dans le noms des champs c'est !!!!!!)

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    Et mélanger du distinctrow avec du group by n'est pas une bonne chose au départ.

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 155
    Points : 112
    Points
    112
    Par défaut
    Quel est exactement l'erreur SQL que tu as ? (parce que la tu as juste mis la fin du message)

    J'ai une erreur du type "n'est pas fonction d'agrégat"

  6. #6
    Membre habitué Avatar de Jahprend
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    255
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 255
    Points : 165
    Points
    165
    Par défaut
    Merci de votre aide mais j'aimerai ne pas avoir plusieurs ligne de genre:
    -juin 2002 bla bla bla
    -juin 2002 bla bla bla

    Je n'arrive pas a faire la somme des memes mois de la meme année
    On peut être pathéthique sans faire l'éthique du pâté.

  7. #7
    Membre habitué Avatar de Jahprend
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    255
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 255
    Points : 165
    Points
    165
    Par défaut
    En faites j'ai une erreur seulement quand je veux enlever des champs dans GROUP BY
    On peut être pathéthique sans faire l'éthique du pâté.

  8. #8
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 155
    Points : 112
    Points
    112
    Par défaut
    -juin 2002 bla bla bla
    -juin 2002 bla bla bla
    Et bien enlève les champ bla_bla_bla du select comme ça tu pourra les enlevé de ton GROUP BY

  9. #9
    Membre habitué Avatar de Jahprend
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    255
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 255
    Points : 165
    Points
    165
    Par défaut
    J'en ai besoin pour mon état...
    On peut être pathéthique sans faire l'éthique du pâté.

  10. #10
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 155
    Points : 112
    Points
    112
    Par défaut
    Et bien est ce que les BLA_BLA_BLA pour juin 2002 sont les même pour chaque tuples ?

    Sinon peux tu poster un shéma de ton état ?

    Car apres on peut travailler avec des sous états liés à ton état pour récupérer les BLA_BLA_BLA.
    Est ce que tu voudrais pas faire un genre de listing genre date =juin 2002 qui s'affiche dans le haut de ton état et trouver chaque tuples pour les afficher ?

  11. #11
    Membre habitué Avatar de Jahprend
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    255
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 255
    Points : 165
    Points
    165
    Par défaut
    Citation Envoyé par cyraile
    Et bien est ce que les BLA_BLA_BLA pour juin 2002 sont les même pour chaque tuples ?

    Sinon peux tu poster un shéma de ton état ?

    Car apres on peut travailler avec des sous états liés à ton état pour récupérer les BLA_BLA_BLA.
    Est ce que tu voudrais pas faire un genre de listing genre date =juin 2002 qui s'affiche dans le haut de ton état et trouver chaque tuples pour les afficher ?
    Non, les bla-bla-bla ne sont pas les mêmes pour chaque tuples(mais qu'est ce qu'un tuple?)
    Bah mon état est de la forme

    Date Chiffres d'affaires Marge brute
    juin 2002 15.00 12.00

    J'aimerai que chacun des mois s'ajoute parce que la j'ai par exemple 2 "juin 2002" avec ds CA et des MB different
    On peut être pathéthique sans faire l'éthique du pâté.

  12. #12
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 155
    Points : 112
    Points
    112
    Par défaut
    SELECT DISTINCTROW Format$([Marge des affaires].[Date de commande],'mmmm yyyy') AS [Date par mois], [Marge des affaires].[Affaire conclue], [Marge des affaires].[Affectation CA], Sum([Marge des affaires].[Prix total de vente de l'affaire]) AS [Somme De Prix total de vente de l'affaire], Sum([Marge des affaires].[Marge Brute]) AS [Somme De Marge Brute]
    FROM [Marge des affaires]
    GROUP BY Month([Marge des affaires].[Date]), Year([Marge des affaires].[Date]), Format$([Marge des affaires].[Date de commande],'mmmm yyyy'), [Marge des affaires].[Affaire conclue], [Marge des affaires].[Affectation CA]
    HAVING ((([Marge des affaires].[Affectation CA])="Dien LUONG") AND (([Marge des affaires].[Affaire conclue])=True) AND ((Format$([Marge des affaires].[Date de commande],'mmmm yyyy')) Like [Choix du mois puis de l'année (ex: mars 2002)] & "*"));
    Est ce que ceci marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT DISTINCTROW Format$([Marge des affaires].[Date de commande],'mmmm yyyy') AS [Date par mois], Sum([Marge des affaires].[Prix total de vente de l'affaire]) AS [Somme De Prix total de vente de l'affaire], Sum([Marge des affaires].[Marge Brute]) AS [Somme De Marge Brute]
    FROM [Marge des affaires]
    GROUP BY [Date de commande]
    HAVING ((([Marge des affaires].[Affectation CA])="Dien LUONG") AND (([Marge des affaires].[Affaire conclue])=True) AND ((Format$([Marge des affaires].[Date de commande],'mmmm yyyy')) Like [Choix du mois puis de l'année (ex: mars 2002)] & "*"));

  13. #13
    Membre habitué Avatar de Jahprend
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    255
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 255
    Points : 165
    Points
    165
    Par défaut
    Ca me met:

    Vous avez essayer d'executer une requête ne comprenant pas l'expression spécifié "champ de mon HAVING" comme une partie de la fonction d'agregat.

    C'est ca que je veux faire mais je comprends pas comment evité cette erreur...
    On peut être pathéthique sans faire l'éthique du pâté.

  14. #14
    Membre habitué Avatar de Jahprend
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    255
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 255
    Points : 165
    Points
    165
    Par défaut
    Je crois que chacun des champs du HAVING doit obligatoirement se trouver dans le GROUP BY, ce qui ne m'arrange pas des masses...
    On peut être pathéthique sans faire l'éthique du pâté.

Discussions similaires

  1. [Win Installer] Erreur : n'est pas accessible
    Par nullitos dans le forum Windows XP
    Réponses: 1
    Dernier message: 01/04/2007, 15h26
  2. Réponses: 2
    Dernier message: 11/03/2007, 09h30
  3. radiobutton erreur n'est pas une valeur entière correcte
    Par pierrot67 dans le forum Bases de données
    Réponses: 3
    Dernier message: 12/03/2006, 21h27
  4. Acceder a une base SQL qui n'est pas sur le meme serveur
    Par skyo dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 20/01/2006, 10h58
  5. erreur '' n'est pas une valeur entière correcte
    Par ffxlenoir dans le forum Langage
    Réponses: 5
    Dernier message: 02/12/2005, 13h57

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