Problème dans une requette sql
jbenz
-
mpmp93 Messages postés 6648 Date d'inscription Statut Membre Dernière intervention -
mpmp93 Messages postés 6648 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai des données comme suit:
chaque personne a une note sur 100
et la troisième colonne désigne si cette personne est évalué ou pas encore
nom | note | de
PERS1 | 0 | 0
PERS2 | 30 | 1
PERS3 | 10 | 1
PERS4 | 30 | 1
PERS5 | 44 | 1
je voudrais avoir une requête qui pourrais me faire la moyenne des notes mais sans calculer ceux qui n'ont pas été évalué grâce a la colonne de dans la table
dans ce cas la requête doit calculer 114/4 donc le résultat c'est 28.5
j'ai déjà tenter une requête mais celle la calcule 114/5 et le résultat obtenu c 22.8 ce qui est faux
voici ma requête:
select ROUND(avg(note)) from tab_note where de<>0
Merci
j'ai des données comme suit:
chaque personne a une note sur 100
et la troisième colonne désigne si cette personne est évalué ou pas encore
nom | note | de
PERS1 | 0 | 0
PERS2 | 30 | 1
PERS3 | 10 | 1
PERS4 | 30 | 1
PERS5 | 44 | 1
je voudrais avoir une requête qui pourrais me faire la moyenne des notes mais sans calculer ceux qui n'ont pas été évalué grâce a la colonne de dans la table
dans ce cas la requête doit calculer 114/4 donc le résultat c'est 28.5
j'ai déjà tenter une requête mais celle la calcule 114/5 et le résultat obtenu c 22.8 ce qui est faux
voici ma requête:
select ROUND(avg(note)) from tab_note where de<>0
Merci
A voir également:
- Problème dans une requette sql
- Logiciel sql - Télécharger - Bases de données
- Sql lister les tables ✓ - Forum Programmation
- Jointure sql ✓ - Forum MySQL
- Sql query download - Télécharger - Gestion de données
- Ora-00933: la commande sql ne se termine pas correctement ✓ - Forum Oracle
2 réponses
Bonjour,
Votre champ de doit être un varchar non ?
Car sinon ça marche, le résultat est bien 29
Si de est un varchar la requête donc
select ROUND(avg(note)) from tab_note where de<>'0'
Votre champ de doit être un varchar non ?
Car sinon ça marche, le résultat est bien 29
Si de est un varchar la requête donc
select ROUND(avg(note)) from tab_note where de<>'0'
Bonjour,
2ème champ doit être valeur ou NULL
Donc, une personne pas évaluée, note contient NULL (pa sle texte, mais l'attribut NULL qui est sélectionnable comme caractéristique du contenu par défaut à la création de l'enregitrement).
Ainsi, pour sortir les notes:
SELECT note FROM tab_note WHERE note IS NOT Null
vous stockez dans un tableau $tabNotes par exemple et vous traitez le tableau:
- nombre de valeurs:
$nbvaleurs = count($tabNotes);
une ch'tite fonction qui fait la somme des valeurs, puis pour la moyenne, c'est facile ensuite...
Avantage de ma solution: 2 champs au lieu de trois. Car personne pas évaluée, son champ note est NULL, personne évaluée, champ contient une valeur.
A+
2ème champ doit être valeur ou NULL
Donc, une personne pas évaluée, note contient NULL (pa sle texte, mais l'attribut NULL qui est sélectionnable comme caractéristique du contenu par défaut à la création de l'enregitrement).
Ainsi, pour sortir les notes:
SELECT note FROM tab_note WHERE note IS NOT Null
vous stockez dans un tableau $tabNotes par exemple et vous traitez le tableau:
- nombre de valeurs:
$nbvaleurs = count($tabNotes);
une ch'tite fonction qui fait la somme des valeurs, puis pour la moyenne, c'est facile ensuite...
Avantage de ma solution: 2 champs au lieu de trois. Car personne pas évaluée, son champ note est NULL, personne évaluée, champ contient une valeur.
A+