Souci SQL

Costine -  
Breub62 Messages postés 3452 Statut Membre -
Bonjour,
j'ai créé des requêtes sql qui servent à transmettre des données sur un graphique. J'en ai créé une au niveau de la France, une pour les régions et une pour les départements. Je comprends pas car celle des régions ne fonctionnent pas :(

France :
$sql="select year(date_jour) ANNEE,ROUND(sum(nbreflashs)/area,3) DENSITE from donnees,departement where year(date_jour) between $deb and $finn group by year(date_jour)";

Régions :
$sql="select numregion,year(date_jour) ANNEE,ROUND(sum(nbreflashs)/area,3) DENSITE from donnees,departement where donnees.numregion=region.area and donnees.numregion=(select numero from region where name=\"$region\") and year(date_jour) between $deb and $finn group by numregion,year(date_jour)";

Départements :
$sql="select codedep,year(date_jour) ANNEE,ROUND(sum(nbreflashs)/area,3) DENSITE from donnees,departement where donnees.codedep=departement.code and donnees.codedep=(select code from departement where name=\"$departement\") and year(date_jour) between $deb and $finn group by codedep,year(date_jour)";

Voici les tables et leurs champs :
- departement : code, name, area, numregion
- region : numero, name
- donnees : date_jour, codedep, numregion, nbrearcs, nbreflashs

Je cherche à transmettre la densité de flashs pour une région au choix !!
Si quelqu'un pourrait m'aider ça serait génial, c'est assez urgent...

Mercii par avance ;)
A voir également:

4 réponses

baladur13 Messages postés 47661 Date d'inscription   Statut Modérateur Dernière intervention   13 780
 
Bonjour
- Les demandes urgentes ne sont pas les bienvenues car nous sommes tous des bénévoles sur CCM
0
Breub62 Messages postés 3452 Statut Membre 369
 
Et quel est ton message d'erreur pour ta requête sur les régions?
0
Costine
 
Ah oui pardon ^^

"Erreur :Column 'numregion' in field list is ambiguous"
0
Breub62 Messages postés 3452 Statut Membre 369
 
Essaye de remplacer select numregion par select donnees.numregion
0
Costine
 
merci !

maintenant ça m'affiche :
"Erreur :Unknown column 'region.area' in 'where clause'"
0
Breub62 Messages postés 3452 Statut Membre 369
 
D'après ce que tu nous dis tu n'as que numero et name dans la table région. Or dans ton where tu met "region.area"???
0
Costine
 
oui c'est ça ! C'est parce que je veux avoir l'aire de la région mais il faudrait additionner l'aire de tous les départements de la région dans cette requête mais comment faire... ?
0
Breub62 Messages postés 3452 Statut Membre 369
 
Select sum(area), numregion from département GROUP BY numregion

Cela te retourne l'area de chaque région (en principe ;-) ). Après je te laisse "bricoler"...
0
Costine
 
$sql="select donnees.numregion,year(date_jour) ANNEE,ROUND(sum(nbreflashs)/area,3) DENSITE from donnees,departement where donnees.numregion IN (select sum(area) from departement group by numregion) and donnees.numregion=(select numero from region where name=\"$region\") and year(date_jour) between $deb and $finn group by numregion,year(date_jour)";

Et je souhaite que sur le graphique s'affiche les densités de flashs d'une région ainsi que dans le tableau...
0
Breub62 Messages postés 3452 Statut Membre 369
 
donnees.numregion IN (select sum(area)


la sous requête doit te renvoyer un ou plusieurs numéros de région... Là ça te retourne une superficie donc pas de résultat à ta requête...
0
Costine
 
je sais pas alors, je comprends rien lol pourtant j'ai mis comme tu m'as dit et avant je mets :
"(sum(nbreflashs)/area,3) DENSITE" donc ça devrait être bon...
0
Breub62 Messages postés 3452 Statut Membre 369
 
Le plus simple est de faire plusieurs requêtes je pense...

req1:calcule l'aréa d'une région
req2: calcule la densité de flash grâce au résultat de req1
req3:fais ta sélection simple sans calculs
0