faire un calcul sur une base [ résolu ]

faire un calcul sur une base [ résolu ] - PHP - Programmation

Marsh Posté le 02-01-2003 à 00:11:25    

re-salut,
est il possible de faire un calcul lors d'une requète sql sur une base et de récuperer les réponses en ordre croissant ou decroissant?
 
par exemple j'ai une table avec 6 champs que l'on appelle 1,2,3,4,5,6, et je veux appliquer une formule de type ((1/2)*(3/4)*(5/6)) et que cela me retourne les résultats en ordre croissant par exemple.
 
ou alors je suis obligé de récuperer toutes les valeurs des champs et faire le calcul en php? :??:


Message édité par mecano1 le 02-01-2003 à 13:57:08
Reply

Marsh Posté le 02-01-2003 à 00:11:25   

Reply

Marsh Posté le 02-01-2003 à 00:49:18    

A priori tu peux le faire sans pb :
 

SELECT ((1/2)*(3/4)*(5/6)) AS calcul FROM table ORDER BY calcul


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 02-01-2003 à 02:56:09    

Les 6 champs, ce sont 6 colonnes ?
 
Si oui, pas de problème :
SELECT (col1*col3*col5)/(col2*col4*col6) AS total
FROM table
ORDER BY total

Reply

Marsh Posté le 02-01-2003 à 10:25:42    

Pär contre les alias n'ont pas l air de marcher entre eux dans un select
par exemple
select sum(apl) as a, sum(aides) as as, as+a
from x
 
il va me dire qu'il ne connait pas as et a :/

Reply

Marsh Posté le 02-01-2003 à 11:38:41    

Peut être que le AS est ambiguë pour MySQL et qu'il le réserve justement à la définition d'un alias ?

Reply

Marsh Posté le 02-01-2003 à 12:29:24    

select sum(apl) as a, sum(aides) as as, sum(apl) + sum(aides)   :(

Reply

Marsh Posté le 02-01-2003 à 12:52:22    

Core 666 a écrit :

Peut être que le AS est ambiguë pour MySQL et qu'il le réserve justement à la définition d'un alias ?


 
Oui dsl pas vu j avais pas employe as as mais un autre truc tout simple.

Reply

Marsh Posté le 02-01-2003 à 12:53:09    

beleg a écrit :

select sum(apl) as a, sum(aides) as as, sum(apl) + sum(aides)   :(  


 
Oui pour deux trois ca va, mais comme tu dois repeter des calculs sur une dizaine de champs c penible a la fin.
 

Code :
  1. select sum(presents) as p, sum(cns) as c, sum(cns_avt) as cv,
  2. sum(presents)+sum(cns)+sum(cns_avt) as sum1,
  3. sum(apl) as a, sum(aides) as ai, sum(fsl) as f, sum(prefet) as pf,
  4. sum(surendt) as sdt, sum(ent) as ent, sum(tiers) as tiers,
  5. sum(tiers)+sum(ent)+sum(surendt)+sum(prefet)+sum(fsl)+sum(aides)+sum(apl),
  6. sum(presents)+sum(cns)+sum(cns_avt)-(sum(tiers)+sum(ent)+sum(surendt)+sum(prefet)+sum(fsl)+sum(aides)+sum(apl))


C plsu vraiment lisible la :/


Message édité par Sebastien le 02-01-2003 à 12:54:52
Reply

Marsh Posté le 02-01-2003 à 13:55:12    

ok merci, je me suis servi du 1er exemple, celui de sielfried qui m'aide beaucoup en ce moment dailleur et ca fonctionne au poil.
Merci encore

Reply

Marsh Posté le 02-01-2003 à 15:59:27    

Sebastien a écrit :


 
Oui pour deux trois ca va, mais comme tu dois repeter des calculs sur une dizaine de champs c penible a la fin.
 

Code :
  1. select sum(presents) as p, sum(cns) as c, sum(cns_avt) as cv,
  2. sum(presents)+sum(cns)+sum(cns_avt) as sum1,
  3. sum(apl) as a, sum(aides) as ai, sum(fsl) as f, sum(prefet) as pf,
  4. sum(surendt) as sdt, sum(ent) as ent, sum(tiers) as tiers,
  5. sum(tiers)+sum(ent)+sum(surendt)+sum(prefet)+sum(fsl)+sum(aides)+sum(apl),
  6. sum(presents)+sum(cns)+sum(cns_avt)-(sum(tiers)+sum(ent)+sum(surendt)+sum(prefet)+sum(fsl)+sum(aides)+sum(apl))


C plsu vraiment lisible la :/


 
je sais mais c comme ca, le as intervenant a la fin avant laffichage et non pendant lexcution de la requete.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed