Somme de données classées dans une requête SQL

Eléphanteau du PHP | 13 Messages

04 janv. 2012, 00:30

Bonjour,
Je dois faire une fonctionnalité qui affiche le montant investi par année pour le renouvellement et l’achat d’ordinateurs.
Le renouvellement et l'achat étant deux tables différentes j'ai donc fait deux requêtes différentes pour ensuite les sommer.
Cependant cela ne marche pas car les deux requêtes ne renvoient pas le même nombre de tuple.
Je ne sais pas comment faire pour résoudre le problème.
Voilà mon code :

Code : Tout sélectionner

$requete = " SELECT Year(jour_mise_en_service) as Année, SUM(cout_achat) as cout FROM Ordinateur Group By Année "; //on compte le montant investi chaque année pour les achats $requete2 = " SELECT Year(O.jour_mise_en_service) as Année, SUM(O.cout_achat) as cout2 FROM Ordinateur O, renouvellement R WHERE R.nom_ordi=O.nom AND R.type_traitement='changement effectué' Group By Année "; //on compte le montant investi pour le renouvellement en supposant que l'ordinateur ait la même valeur que lors de son achat $resultat = mysql_query($requete) or die(mysql_error()); $resultat2 = mysql_query($requete2) or die(mysql_error()); print "<ul>"; while ($nuplet = mysql_fetch_assoc($resultat) ) { //on somme ces deux couts $data = $nuplet['cout']+$nuplet['cout2']; print "<li>" .$data. " ".$nuplet['Année']; //et on les affiches selon l'année print "</li>"; } print "</ul>";

ViPHP
xTG
ViPHP | 7331 Messages

04 janv. 2012, 07:53

Tu récupères tes n-uplets que tu stockes dans un tableau avec l'année comme index.
Ensuite dans ta boucle d'affichage tu affiches en utilisant les index comme référence.
Si l'index n'existe pas => 0