Division dans une requête SQL [Résolu]

Kevergeek
Messages postés
64
Date d'inscription
jeudi 14 février 2002
Dernière intervention
22 janvier 2006
- 22 déc. 2005 à 03:46 - Dernière réponse : Kevergeek
Messages postés
64
Date d'inscription
jeudi 14 février 2002
Dernière intervention
22 janvier 2006
- 22 déc. 2005 à 13:04
Donc voilà j'ai une base de données dont une
table (montages) qui comporte une colonne (votes) qui contient 2
nombres séparés par une virgule (a,b)

a : somme de tous les votes effectués

b : nombre de votes effectués

a/b : moyenne des votes



par exemple si : $montage['votes'] = "14,2";

celà veut dire qu'il y a eu 2 votes effectués dont le total est 14, par exemple "9" et "5"

a = 14

b = 2

a/b = 7



Et je voudrais récupérer la moyenne (a/b) directement dans ma requete sql !

$req = "SELECT ??? FROM montages WHERE id='$id'";



Est-ce que vous savez comment faire une division dans la requête ?

Pour récupérer les champs a et b par concaténation, j'ai trouvé ça dans
mon cours de bdd mais c'est du postgresql et ca n'a pas l'air de
fonctionner exactement pareil en mysql :

select a ||','|| b as votes from montages;



Si vous trouvez la solution en séparant a et b en deux colonnes dans la bdd, je m'arrangerai pour arranger tout ça



Merci d'avance et désolé si chui pas très compréhensible mais je maitrise pas très bien le chinois
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
malik7934
Messages postés
1162
Date d'inscription
mardi 9 septembre 2003
Dernière intervention
15 août 2009
- 22 déc. 2005 à 09:40
3
Merci
Hello,



J'suis pas une bête en mysql, mais j'ai pondu ça:



SELECT votes, right( votes, length( votes) -
locate( ',', votes) ) AS r, left( votes, locate( ',', votes) -1 ) AS l,
(right( votes, length( votes) - locate( ',', votes) ) / left( votes,
locate( ',', votes) -1 )) AS d FROM table



Si tu exécute cette requête sur la table suivante:



votes

14,3

12,4

16,5



voici le résultat que ça te donne:



votes r l d

14,3 3 14 0.21428571428571

12,4 4 12 0.33333333333333

16,5 5 16 0.3125












*****
THINK -> SEEK -> ASK

Merci malik7934 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de malik7934
Kevergeek
Messages postés
64
Date d'inscription
jeudi 14 février 2002
Dernière intervention
22 janvier 2006
- 22 déc. 2005 à 13:04
0
Merci
Impec' merci !!

Dans mon cas il faut juste inverser le left et le right mais sinon c'est parfait



SELECT votes, right(
votes, length( votes) - locate( ',', votes) ) AS r, left( votes,
locate( ',', votes) -1 ) AS l, (left( votes, locate( ',', votes) -1 ) / right( votes, length( votes) - locate(
',', votes) )) AS d FROM table



votes r l d
14,3 3 14 4.666667
12,4 4 12 3
16,5 5 16 3.2



Merci encore ;)
Commenter la réponse de Kevergeek

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.