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 :

Réaliser des moyennes (etc) sur 4 ans


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2014
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2014
    Messages : 41
    Points : 33
    Points
    33
    Par défaut Réaliser des moyennes (etc) sur 4 ans
    Bonjour,

    Nous avons accumulé des résultats d'analyses chimiques depuis 2007. Pour réaliser un classement, celui-ci doit être réalisé sur 4 ans de données.
    Ainsi:
    classement 2011 doit être calculé sur les analyses de 2007 à 2011
    2012: de 2008 à 2012
    ...

    J'ai bien toutes mes formules ad-hoc mais je coince sur la manière de formaliser cette requête.
    Existe-t-il un moyen de faire un "group by 4 ans" dans une requête SQL ??? le but serait d'avoir tous les résultats dans la même table, sans avoir à la modifier tous les ans...

    Merci d'avance!

  2. #2
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Hello !

    As-tu essayé une formule telle que ci-dessous ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    " SELECT Year([MaDate]) AS An, Champs1, Champs2, etc.... FROM MaTable WHERE Year(MaDate])>Year(Date()-4 "
    Je pense que ça devrait faire l'affaire :-)
    Nous n'héritons pas la Terre de nos ancêtres, nous l'empruntons à nos enfants, prenons-en soin !
    (proverbe amérindien)

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2014
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2014
    Messages : 41
    Points : 33
    Points
    33
    Par défaut
    Bonjour Bernardmichel,

    Ayant eu quelques problèmes logistiques au bureau (pas de web...) et devant résoudre mon pb rapidement, j'ai pris la solution x requêtes regroupées. Ca vaut ce que ça vaut (beuuuurk, pa bôôô!) et c'était jouable sur le jeu de donées que j'ai en main.
    Mais je garde ta solution à tester quand j'aurai 1h pour rendre la base plus flexible....
    Merci quand même...

  4. #4
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Alors, si tu trouves cette heure de dispo, et que tu veux vraiment "assouplir" ceci, tu peux également intégrer une variable à ta requête, de la façon suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    Sub ExtractionStatistiques()
    Dim sql         As String
    Dim NbAnnees    As Integer
     
     
        NbAnnees = Me.DureeStatistiques     ' Cette ligne est valable pour l'utilisation d'un formulaire
     
        ' ou si tu préfères utiliser une "InputBox"
        NbAnnees = Val(InputBox("Veuillez saisir le nb d'années à prendre en compte.", "Statistiques"))
     
        sql = "SELECT Year([MaDate]) AS An, Champs1, Champs2, etc.... FROM MaTable WHERE Year(MaDate])>Year(Date()-" & NbAnnees
     
     
    End Sub
    Si tu as besoin d'infos pour appeler ce code... n'hésite pas :-)

    Cordialement.

    Bernard
    Nous n'héritons pas la Terre de nos ancêtres, nous l'empruntons à nos enfants, prenons-en soin !
    (proverbe amérindien)

Discussions similaires

  1. Réponses: 7
    Dernier message: 16/02/2015, 14h54
  2. Réponses: 3
    Dernier message: 09/05/2012, 09h30
  3. Réponses: 4
    Dernier message: 03/07/2009, 20h06
  4. Réponses: 4
    Dernier message: 30/05/2006, 01h19
  5. Réponses: 7
    Dernier message: 08/03/2004, 16h30

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