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
je prends note du

Code : Tout sélectionner

CODE à placer ici

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