Bonjour à tous,

J'essaie depuis un moment de résoudre un problème dont je ne vois pas la cause.
Il me faut obtenir un prix moyen des logements au m² dans la colonne commune de mon tableau. Les lignes de mon tableau correspondent au différents types de biens (maison , T1,T2,...).
Le principe est donc de recenser les mêmes type de bien d'une même commune, diviser les prix de ces biens par leurs superficies afin d'obtenir le prix au m² par type de bien.

Voici la requête créée :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
$req_pa= pg_query($base,"SELECT type_bien, COUNT(id) as nb, sum(superficie) as surf, sum(prix) as prix FROM logpriv_2013
	WHERE superficie>0 and insee='".$commune."' GROUP BY type_bien order by type_bien");;
La mise en forme est réalisée ainsi :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
while($rep_i = pg_fetch_assoc($req_pi))
{
	$rep_o = pg_fetch_assoc($req_po);
	$rep_a = pg_fetch_assoc($req_pa);
	echo "<tr>
		<td class='defaut' bgcolor='#FBFA50'><h4>Prix : ".$rep_a['type_bien']." (nombre de logements)</h4></td>
		<td class='defaut'><h3>".number_format($rep_a['prix']/$rep_a['surf'],2,',',' ')." &nbsp;(
		".number_format($rep_a['nb'],0,',',' ')." )&nbsp;</h3></td>
		<td class='defaut'><h3>".number_format($rep_o['prix']/$rep_o['surf'],2,',',' ')." &nbsp;(
		".number_format($rep_o['nb'],0,',',' ')." )&nbsp;</h3></td>
		<td class='defaut'><h3>".number_format($rep_i['prix']/$rep_i['surf'],2,',',' ')." &nbsp;(
		".number_format($rep_i['nb'],0,',',' ')." )&nbsp;</h3></td>
	</tr>";
}
Cela fonctionne très bien lorsque qu'il n'y a qu'une seule occurrence en revanche le calcul n'est plus bon lorsque qu'il y en a plus.

J'ai essayé de passer par la fonction d'agrégation AVG mais en vain.
J'ai aussi essayé de créer une variable moyenne dans la requête ...

J'ai tout d'abord pensé à un problème d'arrondi car peu d'erreur sur les calculs mais plus il y a d'occurrences plus il y'a d'erreur...

Je ne comprends pas très bien malgré de nombreuses recherches !!

Si vous avez des pistes je serais ravi d'en parler.

PS : Si je n'ai pas été clair n'hésitez pas à me demander plus d'infos.

Merci d'avance.