calcul dans une base de donnée

Eléphanteau du PHP | 12 Messages

22 août 2005, 17:25

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?

Petit nouveau ! | 7 Messages

22 août 2005, 17:53

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));

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

22 août 2005, 18:00

Modération :
Pourquoi avoir posté ce sujet dans le forum "PHPFrance" ?
Le forum "Bases de données" est pourtant facile à trouver... ;)

Petit nouveau ! | 7 Messages

22 août 2005, 18:09

je prends note du

Code : Tout sélectionner

CODE à placer ici

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

22 août 2005, 19:33

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

Eléphanteau du PHP | 12 Messages

23 août 2005, 10:49

je n'arrive pas à transcrire en mysql, ca ne marche pas, HELP

Eléphanteau du PHP | 12 Messages

23 août 2005, 10:51

comment inscrire le résultat avec un "echo"

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

23 août 2005, 10:53

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

Eléphanteau du PHP | 12 Messages

23 août 2005, 10:59

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

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

23 août 2005, 11:06

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

Eléphanteau du PHP | 12 Messages

23 août 2005, 11:10

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";
}

Eléphanteau du PHP | 12 Messages

23 août 2005, 11:26

merci, ca marche