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 :

Requête SQL qui calcule la moyenne par enregistrement


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 37
    Points : 13
    Points
    13
    Par défaut Requête SQL qui calcule la moyenne par enregistrement
    Bonjour,
    Je cherche une requête SQL qui calcule la moyenne des champs 2 a 5 dans le champ moyenne comme ci-dessous:

    Champ 1 Champ 2 Champ 3 Champ 4 Champ 5 Moyenne
    AAA 1 2 6 7
    BBB 2 5 8 3

    Il s'agirait de calculer la moyenne par enregistrement
    Merci a vous !

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 619
    Points : 56 854
    Points
    56 854
    Billets dans le blog
    40
    Par défaut
    Salut,

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT *, (champ2+champ3+champ4+champ5)/4 as moyenne FROM LaTable

    Non ?

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Voici la réponse à ta question et tu as un problème de structure de tes données qui n'est pas adaptée à Access.

    Donc la réponse directe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Moyenne : (iif(Not isnull([Champ1]); [Champ1]; 0) + iif(Not isnull([Champ2]); [Champ2]; 0) + iif(Not isnull([Champ3]); [Champ3]; 0) + iif(Not isnull([Champ4]); [Champ4]; 0)) / 4
    Maintenant la structure que tu devrais avoir pour vraiment profiter des capacités d'Access :

    tblDonnees
    Id (texte, 255 caractères)
    Valeur (Reel double ?)

    Tes donnees se présentent comme suit :

    AAA | 1
    AAA | 2
    AAA | 6
    AAA | 7

    BBB | 2
    BBB | 5
    BBB | 8
    BBB | 3

    et ta moyenne se calcule comme cela :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT tblDonnees.Id, Avg(tblDonnees.Valeur) AS Moyenne
    FROM tblDonnees
    WHERE tblDonnees.Id Is Not Null
    GROUP BY tblDonnees.Id;

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 37
    Points : 13
    Points
    13
    Par défaut
    J'ai essayé d'insérer les données à l'aide de INSERT INTO Moyenne
    (SELECT *, champ... etc)/4
    from la table


    Mais ca ne marche pas

  5. #5
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Que veux-tu exactement faire? calculer la moyenne (requête selection) ou insérer les données (requête insertion)?
    Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
    Oh là!! Que c'est bien de trouver la solution à un problème

    Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Citation Envoyé par LaTOPE Voir le message
    J'ai essayé d'insérer les données à l'aide de INSERT INTO Moyenne
    (SELECT *, champ... etc)/4
    from la table


    Mais ca ne marche pas
    Quel est le SQL de ta requête ?

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 37
    Points : 13
    Points
    13
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO Application (Moyenne_App)
    SELECT Application.*, (Application.Satisfaction+Application.facilite_usage+ Application.fiabilite+ Application.rapidite+ Application.qualite_support_utilisateur+ Application.documentation+ Application.formation)/7 as Moyenne
    FROM Application;
    Merci de votre aide

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    à mon avis il faut faire une requête de mise à jour, par une requête d'insertion.
    Tu n'ajoutes pas d'enregistrement, tu te contentes de modifier un champ.

    Et il n'est pas recommandé, sauf si on a des problèmes de performance d'enregistrer le résultat d'un calcul dans un champ.

    Une requête select avec un champ calculé te donnera le même résultat sans risquer que ta moyenne soit fausse si les champs initiaux changent.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. Réponses: 11
    Dernier message: 14/12/2017, 18h11
  2. [AC-2003] Requête SQL qui me dis aucun enregistrement alors que c'est faux..
    Par jossdu39 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 13/11/2015, 10h22
  3. Requête Sql qui regroupe par date
    Par stade13 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 04/02/2013, 17h51
  4. Réponses: 2
    Dernier message: 16/06/2010, 15h34
  5. Requête SQL qui me bloque
    Par David Guillouet dans le forum Langage SQL
    Réponses: 5
    Dernier message: 27/04/2004, 14h52

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