Bonjour,
Aujourd'hui je fais face à une requête qui me déroute... Somme toute très simple au premier abord, mais son résultat me laisse perplexe et dubitatif... Je vous expose le truc...
Soit 3 tables dont je vous donne le début des données:
1) la table nomenclature est la liste des différentes classes d'occupation des sols du Corine land cover .
CORINE_C3 CORINE_N3f
111 Tissu urbain continu
112 Tissu urbain discontinu
121 Zones industrielles et commerciales
122 Réseaux routier et ferroviaire et espaces associés
123 Zones portuaires
124 Aéroports
131 Extraction de matériaux
132 Décharges
2) Les tables 2 et 3 sont le résultats de l'extraction de ce corine landcover pour différentes régions géographiques avec pour chaque classe de Corine une surface associée. Chaque table ressemble à quelque chose comme:
CORINE_C3 Table1_Shape_Area
211 736879071.3
242 13.10638749
311 226060.4641
311 11151.94523
311 519750.1737
243 394439.7546
311 163970.4339
242 154931.4694
311 339539.8674
112 307010.4828
311 287449.0376
311 756764.9466
Comme vous pouvez le voir certaines classes se répètent (exemple "311"), les deux tables 1 et 2 n'ont pas le même nombre d'échantillon ni le même ordre mais leur structure est parfaitement similaire.
Ma question est de lier chacune de mes tables 1 et 2 à la table nomenclature (table n°1) via le champ "CORINE_C3" en faisant la somme (opération "somme") des surfaces ("Shape_Area") pour connaître la surface relative à chacune des classes d'occupation de sol... Jusque là pas de problème particulier lorsque je commence par lier la table nomenclature (n°1) à la table n°2 (jointure "1 à plusieurs") .
CORINE_C3 Table1_Shape_Area
111 509959.3708
112 16504234.4
121 3088814.396
122
123
Le problème intervient lorsque je rajoute la table n°3 en la liant de la même manière à la table nomenclature n°1. Le résultat est complètement aberrant car pour la somme des surfaces de ma table n°2 je n'obtiens plus le même résultat que précédemment...
CORINE_C3 Table1_Shape_Area Table2_Shape_Area
111 1019918.742 1879992.755
112 4835740680 3779604885
121 138996647.8 104608748.4
122 913461.9721
Je biensûr le problème pourrait se régler en réalisant une requête individuelle pour chaque table. Mais c'est biensûr un peu 'lourd' de procéder ainsi et je n'arrive pas à bien comprendre le problème que pose le fait de réaliser une seule requête globale... Où est l'erreur?
En réalité je dispose de plus de 150 tables du même genre que 'table n°2 et n°3' qui nécessiteraient d'être individuellement 'sommées' pour connaître la surface de chaque classe d'occupation des sols... Voyez vous une solution assez simple pour y parvenir de façon automatique via VBA peut être?
Merci d'avance pour vos conseils et explications,
Clem
Partager