Souci SQL

Fermé
Costine - 8 juil. 2010 à 14:31
Breub62 Messages postés 2987 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 - 9 juil. 2010 à 13:36
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 ;)

4 réponses

baladur13 Messages postés 44244 Date d'inscription mercredi 11 avril 2007 Statut Modérateur Dernière intervention 24 mars 2023 13 395
8 juil. 2010 à 14:35
Bonjour
- Les demandes urgentes ne sont pas les bienvenues car nous sommes tous des bénévoles sur CCM
0
Breub62 Messages postés 2987 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 368
8 juil. 2010 à 14:36
Et quel est ton message d'erreur pour ta requête sur les régions?
0
Ah oui pardon ^^

"Erreur :Column 'numregion' in field list is ambiguous"
0
Breub62 Messages postés 2987 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 368
8 juil. 2010 à 14:40
Essaye de remplacer select numregion par select donnees.numregion
0
merci !

maintenant ça m'affiche :
"Erreur :Unknown column 'region.area' in 'where clause'"
0
Breub62 Messages postés 2987 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 368
8 juil. 2010 à 14:49
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
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 2987 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 368
8 juil. 2010 à 15:02
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
$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 2987 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 368
9 juil. 2010 à 13:26
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
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 2987 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 368
9 juil. 2010 à 13:36
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