Page 1 sur 1

tri des resultats d'une requete dans une requete

Posté : 28 févr. 2007, 18:50
par toony.m
Bonjour,

Voici les champs de ma table:
ID_user,
nom,
prenom,
pdv,
spot1,
spot2,
spot3,
spot4,
spot5,
spot6,
ratio.

Je cherche la requete qui permettrait de :

MODE "tournevis+clou" ON:

Faire la somme des champs "spot1,spot2...spot6" le tout multiplié par "ratio" des lignes dont les pdv sont identiques et le tout étant trié par resultat croissant.
:oops: quelqu'un a compris ?

Donc au final, il y aurait un tableau de type:
Prénom nom pdv resultat=(spot1+spot2+...+spot6)*ratio
Bob Dylan AUXERRE 2456.89
Roger Rabbit PARIS 2345.23
...

Pour infos, il y a dans la table environ 180 users et une douzaine de pdv.

Est-ce faisable ?

MODE "tournevis+clou" OFF

Posté : 01 mars 2007, 11:12
par toony.m
pas d'idées ?

:roll:

Posté : 01 mars 2007, 11:39
par mere-teresa

Posté : 01 mars 2007, 12:04
par toony.m
Oui, j'utilise cette fonction. En fait voila ma demarche:

Dans une boucle, je fais cette requete:
$req1 = "SELECT * FROM citroen_user WHERE statut='$statut'";
$result1=mysql_query($req1) or die (mysql_error()); 
while($row=mysql_fetch_array($result1))
{

$req2 = "SELECT *, SUM(spot1) AS sum_spot1, SUM(spot2) AS sum_spot2, SUM(spot3) AS sum_spot3, SUM(spot4) AS sum_spot4, SUM(spot5) AS sum_spot5, SUM(spot6) AS sum_spot6 FROM matable WHERE pdv='$pdv' GROUP BY pdv";
Je calcul mon resultat:
$total=($row2['sum_spot1']+$row2['sum_spot2']+$row2['sum_spot3']+$row2['sum_spot4']+$row2['sum_spot5']+$row2['sum_spot6'])*$row['ratio'];
Ensuite j'insère les resultats dans une table temporaire.
$req4 = "INSERT INTO table_tempo (pos,nom,prenom,pdv,resultat) VALUES (\"$i\",\"$nom\",\"$prenom\", \"$pdv\",\"$total\")";
}
Et au final je trie cette table par ordre.

Puis je la supprime.

Mais est-il possible de passer cette étape de création de table temporaire utilisée uniquement pour le tri des resultats ?

Je ne sait pas comment faire et ça me pose souvent problème cette façon de procéder...

Posté : 01 mars 2007, 14:41
par Truc
Modération :
toony.m, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ

Posté : 01 mars 2007, 16:00
par mere-teresa

Code : Tout sélectionner

SELECT *, SUM(spot1, spot2, spot3) AS somme..