Page 1 sur 1
calcul dans une base de donnée
Posté : 22 août 2005, 17:25
par pascb
bonjour,
comment peut-on calculer la somme la plus élevée dans une base de donnée exemple:
NOM QUANTITE
dunand 10
dunand 15
resto 5
hulri 50
hulri 2
hulri 7
voilà, il s'agit de savoir quelle personne à la plus grande quantité comme ici, c'est hulri qui a 50+2+7.
peut-on comparer ceci avec le SELECT de mysql ou en PHP?
Posté : 22 août 2005, 17:53
par panjas51
tu as deja:
Code : Tout sélectionner
SELECT Sum(Table1.quantite) AS SommeDequantite, Table1.nom
FROM Table1
GROUP BY Table1.nom;
qui va te donner:
nom SommeDequantite
dunand 25
hulri 59
resto 5
tu as aussi:
Code : Tout sélectionner
SELECT nom, SommeDequantite
FROM Requête1 where SommeDequantite=(select max(sommedequantite) from requête1) ;
qui va te donner:
nom SommeDequantite
hulri 59
donc si tu veux ca en une seule query tu vas avoir:
Code : Tout sélectionner
SELECT nom, SommeDequantite
FROM (SELECT Sum(Table1.quantite) AS SommeDequantite, Table1.nom
FROM Table1
GROUP BY Table1.nom) where SommeDequantite=(select max(sommedequantite) from (SELECT Sum(Table1.quantite) AS SommeDequantite, Table1.nom
FROM Table1
GROUP BY Table1.nom));
c'est fait à partir d'une base access, mais pour la transformer en mysql, c'est la même chose.
Code : Tout sélectionner
SELECT nom, SommeDequantite
FROM (SELECT Sum(quantite) SommeDequantite, nom
FROM Table1
GROUP BY nom) where SommeDequantite=(select max(sommedequantite) from (SELECT Sum(quantite) SommeDequantite, nom
FROM Table1
GROUP BY nom));
Posté : 22 août 2005, 18:00
par albat
Modération :
Pourquoi avoir posté ce sujet dans le forum "PHPFrance" ?
Le forum "Bases de données" est pourtant facile à trouver... 
Posté : 22 août 2005, 18:09
par panjas51
Posté : 22 août 2005, 19:33
par ouckileou
ou sinon peut-être plus simple :
Code : Tout sélectionner
SELECT nom, SUM(quantite) AS total
FROM table
GROUP BY nom
ORDER BY total DESC
LIMIT 0,1
ce n'est pas résolu
Posté : 23 août 2005, 10:49
par pascb
je n'arrive pas à transcrire en mysql, ca ne marche pas, HELP
Posté : 23 août 2005, 10:51
par pascb
comment inscrire le résultat avec un "echo"
Posté : 23 août 2005, 10:53
par ouckileou
laquelle ?
celle que je t'ai donnée fonctionne normalement
celle de
manjas51 ne fonctionnera qu'à partir de MySQL 4.1
pour afficher le résultat avec un echo il te faut utilser d'abord une fonction comme mysql_fetch_array, ou mysql_fetch_row
va voir ce tuto :
http://www.phpdebutant.org/article66.php
Posté : 23 août 2005, 10:59
par pascb
peux-tu me passer la méthode du mysql_fetch_array puis la ligne du echo, car j'ai un message RESSOURCE id#4
merci
Posté : 23 août 2005, 11:06
par ouckileou
1 - tu as testé ta requête dans phpMyAdmin ?
2 - elle marche ?
3 - tu as fais des essais pour récupérer le résultat ?
si oui montre nous le code que tu as essayé, et ceci dans un nouveau sujet car c'est un nouveau problème
Posté : 23 août 2005, 11:10
par pascb
voilà le code
$quantite=mysql_query("SELECT adresseemail, SUM(quantite) AS total FROM ventes GROUP BY adresseemail ORDER BY total DESC LIMIT 0,1 ");
while($data = mysql_fetch_array($quantite))
{
echo "il y a $data de points";
}
Posté : 23 août 2005, 11:26
par pascb
merci, ca marche