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

Langage SQL Discussion :

[Access] Clause GROUP BY avec une date


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 20
    Points : 10
    Points
    10
    Par défaut [Access] Clause GROUP BY avec une date
    Bonjour, j'ai cette requête ci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT cp.ArrondissementCp, cp.debutCp, b.dateSaisieBillet
    FROM Billet AS b
             INNER JOIN (CodePostaux AS cp)
             ON (b.codeCpBillet = cp.idCp)
    WHERE cp.arrondissementCp = 'PAT'
    GROUP BY cp.arrondissementCp, cp.debutCp, YEAR(b.dateSaisieBillet)
    Mais j'ai une erreur: b.dateSaisieBillet n'est pas utilisé dans la fonction d'agrégat.

    Est-ce que cela veut dire que je dois absolument grouper par b.dateSaisieBillet et que le Year(b.dateSaisieBillet) n'est possible que dans le WHERE?

    Si je veux grouper par l'année, le mois et le jour, ya-t-il une façon de faire?


    Merci

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    bonjour,

    J'ai essayé de faire une concaténation dans le select:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT Year(b.dateSaisieBillet) || '-' || Month(b.dateSaisieBillet) || '-' || Day(b.dateSaisieBillet) AS Saisie FROM Billet AS b
    Mais j'ai l'erreur suivante: Mauvaise utilisation des barres verticales.


    J'ai lu le tutoriel de SQLPro, et les || sont utilisées pour la concaténation ...

  3. #3
    Membre actif Avatar de TheRussian
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 200
    Points : 241
    Points
    241
    Par défaut Re: [SQL] Clause GROUP BY avec une date
    Citation Envoyé par Kanie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT cp.ArrondissementCp, cp.debutCp, b.dateSaisieBillet
    FROM Billet AS b
             INNER JOIN (CodePostaux AS cp)
             ON (b.codeCpBillet = cp.idCp)
    WHERE cp.arrondissementCp = 'PAT'
    GROUP BY cp.arrondissementCp, cp.debutCp, YEAR(b.dateSaisieBillet)
    Mais j'ai une erreur: b.dateSaisieBillet n'est pas utilisé dans la fonction d'agrégat.

    Est-ce que cela veut dire que je dois absolument grouper par b.dateSaisieBillet et que le Year(b.dateSaisieBillet) n'est possible que dans le WHERE?

    Si je veux grouper par l'année, le mois et le jour, ya-t-il une façon de faire?
    Bonjour,

    Quel est le SGBD ?
    Sinon, il faut que les zones du select soient dans le group by à l'exception des fonctions telles SUM, AVG, COUNT, ....
    Pour grouper par année, mois, jour la date ne fait pas l'affaire ?

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    J'utilise Access sous vb.net (2003)
    effectivement, mettre simplement la date retourne les réponses correctement.

    Je penses que je me suis mal exprimé. L'utilisateur, lorsqu,il sélectionne le la case MOIS, le group by group par mois, donc n'affiche que le mois, du genre:


    Nom Prenom Date naissance
    Nom1 Prenom1 01
    Nom2 Prenom2 01
    ...
    Nomx Prenomx 04

  5. #5
    Membre éclairé Avatar de Spoutnik
    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 672
    Points : 781
    Points
    781
    Par défaut Re: [Access] Clause GROUP BY avec une date
    essaye ca si tu n'a besoin que d'un regroupement par mois (c'est à dire que ce soit janvier 2005 ou 2006, tu t'en fiche):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT cp.ArrondissementCp, cp.debutCp, YEAR(b.dateSaisieBillet) as mois
    FROM Billet AS b
             INNER JOIN (CodePostaux AS cp)
             ON (b.codeCpBillet = cp.idCp)
    WHERE cp.arrondissementCp = 'PAT'
    GROUP BY cp.arrondissementCp, cp.debutCp, mois
    ou, ce qui revient au même :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT distinct  cp.ArrondissementCp, cp.debutCp, YEAR(b.dateSaisieBillet) 
    FROM Billet AS b
             INNER JOIN (CodePostaux AS cp)
             ON (b.codeCpBillet = cp.idCp)
    WHERE cp.arrondissementCp = 'PAT'

    ++
    Two beer or not two beer. (Shakesbeer)
    Question technique par MP => poubelle!

Discussions similaires

  1. Clause where avec une date !
    Par robyseb dans le forum VBA Access
    Réponses: 2
    Dernier message: 05/02/2012, 14h12
  2. Clause where avec une date..
    Par bobic dans le forum Requêtes
    Réponses: 3
    Dernier message: 09/04/2008, 16h12
  3. Réponses: 4
    Dernier message: 02/08/2006, 08h42
  4. Réponses: 2
    Dernier message: 16/08/2005, 15h33
  5. probléme avec une date/string dans un CommandText
    Par critok dans le forum Bases de données
    Réponses: 5
    Dernier message: 09/02/2005, 15h30

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