ArcGIS Desktop

  • Dokumentation
  • Support

  • My Profile
  • Hilfe
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Die Mapping-Plattform für Ihre Organisation

ArcGIS Desktop

Ein vollständiges professionelles GIS

ArcGIS Enterprise

GIS in Ihrem Unternehmen

ArcGIS for Developers

Werkzeuge zum Erstellen standortbezogener Apps

ArcGIS Solutions

Kostenlose Karten- und App-Vorlagen für Ihre Branche

ArcGIS Marketplace

Rufen Sie Apps und Daten für Ihre Organisation ab.

  • Dokumentation
  • Support
Esri
  • Anmelden
user
  • Eigenes Profil
  • Abmelden

ArcMap

  • Startseite
  • Erste Schritte
  • Karte
  • Analysieren
  • Verwalten von Daten
  • Werkzeuge
  • Erweiterungen

Abfragetabelle erstellen

  • Zusammenfassung
  • Verwendung
  • Syntax
  • Codebeispiel
  • Umgebungen
  • Lizenzinformationen

Zusammenfassung

Mit diesem Werkzeug wird eine SQL-Abfrage auf eine Datenbank angewendet, und die Ergebnisse werden in einem Layer oder einer Tabellensicht dargestellt. Die Abfrage kann verwendet werden, um mehrere Tabellen zu verbinden oder eine Teilmenge der Spalten oder Zeilen aus den ursprünglichen Daten in der Datenbank zurückzugeben.

Das Werkzeug funktioniert mit Daten aus einer ArcSDE-Geodatabase, einer File-Geodatabase, einer Personal-Geodatabase oder einer OLE-DB-Verbindung.

Verwendung

  • Der vom Werkzeug erstellte Layer ist temporär und nur für die Dauer der Sitzung vorhanden, es sei denn, das Dokument wird gespeichert.

  • Alle Eingabe-Feature-Classes oder Tabellen müssen aus demselben Eingabe-Workspace stammen.

  • Wenn der Feldliste eine Spalte "Shape" hinzugefügt wird, ist das Ergebnis ein Layer. Andernfalls ist das Ergebnis eine Tabellensicht.

  • Wenn ein Layer ausgegeben wird, kann dieser mit dem Werkzeug In Layer-Datei speichern dauerhaft in einer Layer-Datei oder mit dem Werkzeug Features kopieren in einer Feature-Class gespeichert werden.

  • Die Felder im ausgegebenen Layer bzw. in der ausgegebenen Tabellensicht weisen dieselbe Reihenfolge auf wie die Felder in der Feldliste.

  • Dieses Werkzeug ermöglicht die Bereitstellung einer Schlüsselfeldoption und einer Schlüsselfeldliste. Mit diesen Informationen kann die eindeutige Identifizierung von Zeilen definiert und den Daten eine dynamische ObjectID-Spalte hinzugefügt werden. Ohne eine ObjectID-Spalte wird eine Auswahl nicht unterstützt.

  • Mithilfe der Schlüsselfeldliste können Sie verschiedene Spalten auswählen, wenn die Kombination dieser Spalten zur eindeutigen Definierung von Werten erforderlich ist.

  • Wird ein SQL-Ausdruck verwendet, aber es werden keine passenden Datensätze zurückgegeben, bleibt die Ausgabe-Feature-Class leer.

  • Feature-Classes können miteinander verbunden werden. Hierfür darf die Feldliste jedoch höchstens ein Geometriefeld enthalten. Wenn Sie mehrere Geometriespalten hinzufügen, wird nach Klicken auf OK eine Fehlermeldung angezeigt, und die Ausführung wird angehalten.

  • Weitere Informationen zur Syntax des Parameters Ausdruck finden Sie unter Erstellen von SQL-Ausdrücken oder SQL-Referenz.

  • Die Schaltfläche Feld hinzufügen der Parameter Felder und Schlüsselfelder wird nur in ModelBuilder verwendet. Die Parameter Felder und Schlüsselfelder sind in ModelBuilder nicht mit Feldnamen belegt, wenn das vorherige Werkzeug nicht ausgeführt wurde oder die abgeleiteten Daten nicht vorhanden sind. Mit der Schaltfläche "Feld hinzufügen" können Sie die erwarteten Felder hinzufügen, damit Sie das Dialogfeld "Abfragetabelle erstellen" abschließen und mit der Erstellung Ihres Modells fortfahren können.

  • Eingabetabellen aus einer File-Geodatabase werden im Allgemeinen in der im Parameter für die Eingabetabellen festgelegten Reihenfolge verbunden. Beispiel: Tabelle1 wird vor Tabelle2 aufgeführt. Tabelle2 wird mit Tabelle1 verbunden, indem eine Zeile aus Tabelle1 und anschließend alle übereinstimmenden Zeilen aus Tabelle2 abgerufen werden. Wenn dies jedoch bedeutet, dass Tabelle2 über ein nicht indiziertes Feld abgefragt wird und eine umgekehrte Reihenfolge dazu führen würde, dass Tabelle1 über ein indiziertes Feld abgefragt würde, wird die Reihenfolge der Tabellen umgekehrt, um die Performance zu verbessern. Dies ist die einzige Art der Abfrageoptimierung für die Verwendung von File-Geodatabase-Daten mit dem Werkzeug. Im Allgemeinen funktionieren Verbindungen in File-Geodatabases am besten bei Eins-zu-viele- und Eins-zu-eins-Verbindungen.

Syntax

MakeQueryTable_management (in_table, out_table, in_key_field_option, {in_key_field}, {in_field}, {where_clause})
ParameterErläuterungDatentyp
in_table
[in_table,...]

Der Name der in der Abfrage zu verwendenden Tabelle. Bei mehreren Tabellen können Sie mit dem Parameter "Ausdruck" definieren, wie die Tabellen verbunden werden sollen.

Die Eingabetabelle kann aus einer ArcSDE-Geodatabase, einer File-Geodatabase, einer Personal-Geodatabase oder einer OLE-DB-Verbindung stammen.

Table View; Raster Layer
out_table

Der Name des/der vom Werkzeug erstellten Layers/Tabellensicht.

Table View;Raster Layer
in_key_field_option

Gibt an, ob und wie ein ObjectID-Feld für die Abfrage erstellt wird. Die Standardeinstellung lautet "USE_KEY_FIELDS".

  • USE_KEY_FIELDS —Dies gibt an, dass die aus der Liste mit den Schlüsselfeldern ausgewählten Felder zur Bestimmung der dynamischen ObjectID-Spalte dienen. Wenn aus der Liste mit den Schlüsselfeldern keine Felder ausgewählt wurden, wird automatisch die Option "ADD VIRTUAL_KEY_FIELD" angewendet.
  • ADD_VIRTUAL_KEY_FIELD —Dies gibt an, dass keine Schlüsselfelder ausgewählt wurden, jedoch eine dynamische ObjectID-Spalte generiert werden soll. Hierzu werden die Daten in einen lokalen, vom System verwalteten Workspace kopiert. Dieser Kopie wird dann ein Feld mit eindeutigen Werten hinzugefügt. Der Layer bzw. die Tabellensicht greifen dann auf die Kopie zu und verwenden das hinzugefügte Feld als Schlüsselfeld.
  • NO_KEY_FIELD —Dies gibt an, dass keine dynamische ObjectID-Spalte erstellt werden soll. Bei Verwendung dieser Option wird die Auswahl für die Tabellensicht nicht unterstützt. Wenn bereits eine Spalte des Typs "ObjectID" in der Feldliste vorhanden ist, wird sie als ObjectID verwendet, auch wenn diese Option gewählt wird.
String
in_key_field
[in_key_field,...]
(optional)

Gibt ein Feld oder eine Kombination von Feldern an, die zur eindeutigen Identifizierung einer Zeile in der Abfrage verwendet werden können. Dieser Parameter wird nur verwendet, wenn die Option "USE_KEY_FIELDS" festgelegt wurde.

Mit der nur in ModelBuilder verwendeten Schaltfläche "Feld hinzufügen" können Sie die erforderlichen Felder hinzufügen, um das Dialogfeld auszufüllen und das Modell zu erstellen.

Field
in_field
[[Field, {Alias}],...,...]
(optional)

Die Felder, die in den Layer/die Tabellensicht aufgenommen werden. Wenn ein Aliasname für ein Feld festgelegt wurde, wird dieser angezeigt. Wenn keine Felder angegeben wurden, werden alle Felder aus allen Tabellen aufgenommen.

Value Table
where_clause
(optional)

Ein SQL-Ausdruck, mit dem eine Teilmenge der Datensätze ausgewählt wird. Weitere Informationen zur SQL-Syntax finden Sie in dem Hilfethema SQL-Referenz für in ArcGIS verwendete Abfrageausdrücke.

SQL Expression

Codebeispiel

MakeQueryTable - Beispiel (Python-Fenster)

Das folgende Skript im Python-Fenster veranschaulicht, wie die Funktion "MakeQueryTable" im unmittelbaren Modus verwendet wird.

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'")
MakeQueryTable - Beispiel 2 (eigenständiges Skript)

Das folgende Skript veranschaulicht beispielhaft die Nutzung des Werkzeugs "MakeQueryTable" in der Python-Skriptumgebung.

# 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
 
try:
    # Local variables...
    tableList = ["Database Connections/balrog.odc/vtest.COUNTIES",\
                 "Database 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")
 
except Exception as err:
    print(err.args[0])

Umgebungen

  • Aktueller Workspace

Lizenzinformationen

  • ArcGIS Desktop Basic: Ja
  • ArcGIS Desktop Standard: Ja
  • ArcGIS Desktop Advanced: Ja

Verwandte Themen

  • Überblick über das Toolset "Layer und Tabellensichten"
  • Arbeiten mit Layern und Tabellensichten
  • Arbeiten mit Layern und Tabellensichten
  • Beispiele für Abfragen mit dem Werkzeug "Abfragetabelle erstellen"

ArcGIS Desktop

  • Startseite
  • Dokumentation
  • Support

ArcGIS Plattform

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

Über Esri

  • Über uns
  • Karriere
  • Insider-Blog
  • User Conference
  • Developer Summit
Esri
Wir sind an Ihrer Meinung interessiert.
© Copyright 2016 Environmental Systems Research Institute, Inc. | Datenschutz | Rechtliches