ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Aide
  • Sign Out
ArcGIS Desktop

ArcGIS Online

La plateforme cartographique de votre organisation

ArcGIS Desktop

Un SIG professionnel complet

ArcGIS Enterprise

SIG dans votre entreprise

ArcGIS for Developers

Outils de création d'applications de localisation

ArcGIS Solutions

Modèles d'applications et de cartes gratuits pour votre secteur d'activité

ArcGIS Marketplace

Téléchargez des applications et des données pour votre organisation.

  • Documentation
  • Support
Esri
  • Se connecter
user
  • Mon profil
  • Déconnexion

ArcMap

  • Accueil
  • Commencer
  • Carte
  • Analyser
  • Gérer les données
  • Outils
  • Extensions

Générer une table de requête

  • Résumé
  • Utilisation
  • Syntaxe
  • Exemple de code
  • Environnements
  • Informations de licence

Résumé

Cet outil applique une requête SQL à une base de données et présente les résultats dans une couche ou une vue tabulaire. Vous pouvez utiliser une requête pour joindre plusieurs tables ou renvoyer un sous-ensemble de champs ou de lignes à partir des données d'origine dans la base de données.

Cet outil accepte les données provenant d'une connexion à une géodatabase ou une base de données.

Utilisation

  • La couche créée par l'outil est temporaire et disparaîtra à la fin de la session si le document n'est pas enregistré.

  • Toutes les tables ou les classes d'entités en entrée doivent provenir du même espace de travail en entrée.

  • Si un champ de forme est ajouté à la liste de champs, le résultat est une couche ; sinon, c'est une vue tabulaire.

  • Si le résultat en sortie est une couche, celle-ci peut être conservée dans un fichier de couche à l'aide de l'outil Enregistrer dans un fichier de couche ou dans une classe d'entités à l'aide de l'outil Copier des entités.

  • L'ordre des champs dans la liste de champ indique l'ordre dans lequel les champs apparaîtront dans la vue tabulaire ou la couche en sortie.

  • L'outil vous permet de fournir une option de champ de clé et une liste de champs de clé. Ces informations définissent le mode d'identification unique des lignes et permettent d'ajouter aux données un champ IdObjet généré de façon dynamique. Sans champ IdObjet, les sélections ne seront pas prises en charge.

  • La liste de champs de clé vous permet de choisir plusieurs champs si la combinaison de ces champs est nécessaire pour définir des valeurs uniques.

  • Si une expression SQL est utilisée mais ne renvoie pas d'enregistrements correspondants, la classe d'entités en sortie sera vide.

  • Les classes d'entités peuvent être jointes, mais la liste des champs doit contenir au plus un champ de type géométrie.

  • Pour en savoir plus sur la syntaxe du paramètre Expression, reportez-vous à la rubrique Création d'une expression de requête ou Référence SQL pour les expressions de requête utilisées dans ArcGIS .

  • Le bouton Ajouter un champ des paramètres Champs et Champs de clé est uniquement utilisé dans ModelBuilder. Dans ModelBuilder, lorsque l'outil précédent n'a pas été exécuté ou si ses données dérivées n'existent pas, les paramètres Champs et Champs de clé peuvent ne comporter aucun nom de champ. Le bouton Ajouter un champ permet d'ajouter des champs attendus pour continuer à renseigner la boîte de dialogue Générer une table de requête et poursuivre la construction du modèle.

  • Lorsque les tables en entrée proviennent d'une géodatabase fichier, les tables sont généralement jointes dans l'ordre dans lequel elles sont répertoriées dans le paramètre Tables en entrée. Par exemple, si la Table1 est répertoriée avant la Table2, la Table2 sera jointe en extrayant un enregistrement de la Table1, puis en extrayant les lignes correspondantes de la Table2. Toutefois, si cela provoque l'interrogation de la Table2 sur un champ non indexé et si l'inversion de l'ordre provoquer l'interrogation de la Table1 sur un champ indexé, l'ordre est inversé afin de tenter d'optimiser la performance. C'est la seule logique d'optimisation de requête qui s'applique lorsque vous utilisez des données de géodatabase fichier avec cet outil. En général, les jointures dans les géodatabases fichier sont plus performantes lorsqu'elles sont effectuées de un vers plusieurs et de un vers un.

Syntaxe

MakeQueryTable_management (in_table, out_table, in_key_field_option, {in_key_field}, {in_field}, {where_clause})
ParamètreExplicationType de données
in_table
[in_table,...]

Nom de la ou des tables à utiliser dans la requête. Si plusieurs tables sont répertoriées, le paramètre where_clause peut être utilisé pour définir comment les joindre.

La table en entrée peut provenir d'une connexion à une géodatabase ou une base de données.

Table View; Raster Layer
out_table

Nom de la couche ou de la vue tabulaire qui va être créée par l'outil.

Table View; Raster Layer
in_key_field_option

Les couches et vues tabulaires dans ArcGIS nécessitent un champ IdObjet. Un champ IdObjet est un champ d'entier qui permet d'identifier de façon unique les lignes dans les données en cours d'utilisation. Dans cet outil, ce paramètre permet d'indiquer comment un champ IdObjet est généré (le cas échéant) pour la requête. La valeur par défaut est Utiliser les champs de clé (USE_KEY_FIELDS dans Python).

  • USE_KEY_FIELDS —Indique que les champs sélectionnés dans le paramètre Champs de clé peuvent servir à identifier de manière unique une ligne dans la table en sortie. Il peut s'agir d'un champ unique ou d'une combinaison de plusieurs champs qui, lorsqu'ils sont associés, identifient de manière unique une ligne dans la table en sortie. Si aucun champ n'est sélectionné dans la liste des champs de clé, l'option Générer un champ de clé (ADD VIRTUAL_KEY_FIELD dans Python) est appliquée automatiquement.
  • ADD_VIRTUAL_KEY_FIELD —Si aucun champ de clé n’est spécifié, vous pouvez choisir cette option pour générer un ID d’objet qui identifie de manière unique chaque ligne dans la table en sortie.
  • NO_KEY_FIELD —Cette option indique qu'aucun champ IdObjet ne doit être généré. Si vous activez cette option, les sélections ne sont pas prises en charge pour la vue tabulaire.
    Remarque :

    Si un champ IdObjet existe déjà dans la liste des champs, il est utilisé comme IdObjet, même si cette option est choisie..

String
in_key_field
[in_key_field,...]
(Facultatif)

Spécifie un champ ou une combinaison de champs qu'il est possible d'utiliser pour identifier de manière unique une ligne dans la requête. Ce paramètre est utilisé uniquement lorsque l'option USE_KEY_FIELDS est définie.

Field
in_field
[[field, {alias}],...]
(Facultatif)

Champs à inclure dans la couche ou la vue tabulaire. Si un alias est défini pour un champ, ceci correspond au nom qui s'affiche. Si aucun champ n'est spécifié, tous les champs de toutes les tables sont inclus. Si un champ de forme est ajouté à la liste de champs, le résultat est une couche ; sinon, c'est une vue tabulaire.

Value Table
where_clause
(Facultatif)

Expression SQL permettant de sélectionner un sous-ensemble d'enregistrements.

SQL Expression

Exemple de code

Exemple 1 d'utilisation de l'outil MakeQueryTable (fenêtre Python)

Le script de fenêtre Python ci-dessous illustre l'utilisation de la fonction MakeQueryTable en mode immédiat.

import arcpy
arcpy.env.workspace = "C:/data/data.gdb"
arcpy.MakeQueryTable_management(["Counties","codemog"], "queryout", "ADD_VIRTUAL_KEY_FIELD", "",
                                [["Counties.OBJECTID", 'ObjectID'], ["Counties.NAME", 'Name'],
                                 ["codemog.Males", 'Males'], ["codemog.Females", 'Females']],
                                "Counties.FIPS = codemog.Fips and Counties.STATE_NAME = 'California'")
Exemple 2 d'utilisation de l'outil MakeQueryTable (script autonome)

Le script suivant est un exemple de l'utilisation de l'outil MakeQueryTable dans l'environnement de création de scripts Python.

# MakeQueryTableOLEDB.py
# Description: Create a query table from two OLE DB tables using a limited set of
#               fields and establishing an equal join.
 
# Import system modules
import arcpy
 
# Local variables...
tableList = ["c:/Connections/balrog.odc/vtest.COUNTIES",\
             "c:/Connections/balrog.odc/vtest.CODEMOG"]
fieldList = [["vtest.COUNTIES.OBJECTID", 'ObjectID'], ["vtest.COUNTIES.NAME", 'Name']\
             ["vtest.CODEMOG.Males", 'Males'], ["vtest.CODEMOG.Females", 'Females']]
whereClause = "vtest.COUNTIES.FIPS = vtest.CODEMOG.Fips" +\
              "and vtest.COUNTIES.STATE_NAME = 'California'"
keyField = "vtest.COUNTIES.OBJECTID"
lyrName = "CountyCombined"
# Make Query Table...
arcpy.MakeQueryTable_management(tableList, lyrName,"USE_KEY_FIELDS", keyField, fieldList, whereClause)
# Print the total rows
print(arcpy.GetCount_management(lyrName))
 
# Print the fields
fields = arcpy.ListFields(lyrName)
for field in fields:
    print(field.name)
# Save as a dBASE file
arcpy.CopyRows_management(lyrName, "C:/temp/calinfo.dbf")

Environnements

  • Espace de travail courant

Informations de licence

  • ArcGIS Desktop Basic: Oui
  • ArcGIS Desktop Standard: Oui
  • ArcGIS Desktop Advanced: Oui

Rubriques connexes

  • Vue d'ensemble du jeu d'outils Couches et vues tabulaires
  • Utilisation des couches et des vues tabulaires
  • Utilisation des couches et des vues tabulaires
  • Exemples de requêtes avec l'outil Générer une table de requête

ArcGIS Desktop

  • Accueil
  • Documentation
  • Support

ArcGIS Platform

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

A propos d'Esri

  • A propos de la société
  • Carrières
  • Blog d’Esri
  • Conférence des utilisateurs
  • Sommet des développeurs
Esri
Donnez-nous votre avis.
Copyright © 2019 Esri. | Confidentialité | Légal