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 ;)

4 réponses

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

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

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