#1 Thu 31 January 2008 14:06
- Copernik
- Participant occasionnel
- Date d'inscription: 15 Jan 2007
- Messages: 32
Requête SQL
Bonjour,
je souhaite réaliser une requête SQL pour le calcul de surface par commune sous MI.
J'ai plusieurs plygones, contenus dans chaque commune. Et je souhaiterai avoir pour chaque commune la superficie des plygones contenus à l'intérieur.
Problème : le résultat c'est une ligne par polygone(créant des doublons dans les champs commune), et non une ligne par commune.
Ma requête :
Select Commune.NOM, zones.superficie
From Commune, zones
Where Commune.Obj Contains zones.Obj
Si jamais je rajoute sum(*) :
Select Commune.NOM, sum(zones.superficie)
From Commune, zones
Where Commune.Obj Contains zones.Obj
...là j'obtiens une seule ligne avec la somme totale.
Je cherche en fait (si je me trompe pas), l'équivalent de "distinct" sous Access.
Voilà si vous avez une idée...
(pour simplifier je cherche à faire la somme des surfaces par commune)
Merci !
Dernière modification par Copernik (Thu 31 January 2008 14:09)
Hors ligne
#2 Thu 31 January 2008 14:20
- erwann
- Participant occasionnel
- Lieu: Brest
- Date d'inscription: 21 Aug 2006
- Messages: 39
Re: Requête SQL
Bonjour,
Si je ne me trompes pas la requête suivante devrait marcher :
Select sum(zones.superficie)
From Commune, zones
Where Commune.Obj Contains zones.Obj
Group by Commune.NOM
Erwann
Erwann.
Hors ligne
#3 Thu 31 January 2008 14:25
- Copernik
- Participant occasionnel
- Date d'inscription: 15 Jan 2007
- Messages: 32
Re: Requête SQL
Super ça marche !!
Merci bien !
Hors ligne
#4 Thu 31 January 2008 16:58
- Maestro de la salsa
- Participant actif
- Date d'inscription: 7 Jun 2006
- Messages: 133
Re: Requête SQL
Bonjour,
Je ne connais pas ta couverture mais vérifie qu'il n'y ait pas deux communes distinctes ayant le même nom...Le mieux c'est est de faire le group by sur le "code commune" qui est unique (surtout pas le code postal car plusieurs communes différentes peuvent avoir un même code postal).
Hors ligne