Souci SQL

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

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Bonjour
    - Les demandes urgentes ne sont pas les bienvenues car nous sommes tous des bénévoles sur CCM
    1. Et quel est ton message d'erreur pour ta requête sur les régions?
      1. Ah oui pardon ^^

        "Erreur :Column 'numregion' in field list is ambiguous"
        1. Essaye de remplacer select numregion par select donnees.numregion
        2. merci !

          maintenant ça m'affiche :
          "Erreur :Unknown column 'region.area' in 'where clause'"
        3. 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"???
        4. 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... ?
        5. 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"...
      2. $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...
        1. 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...
        2. 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...
        3. 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