8 votos

La creación de combinación basada en varios campos utilizando ArcGIS Desktop?

Tengo dos clases de entidad en una Geodatabase de Archivos que me gustaría unirme, basado en múltiples campos. He buscado en este sitio y Google, y todos me han llegado con fue el uso de la marca de la Consulta de la Tabla de la herramienta. He intentado esto, pero me sale un error de SQL. Mi SQL es bastante pobre y estoy bastante seguro de que me estoy perdiendo algo.

Soy consciente de que puedo crear un campo nuevo y concatenar los valores de mi campo, pero me gustaría evitar esto, si es posible.

Estoy usando algo que se parece a esto:

(Table1.Field1 = Table2.Field1) AND (Table1.Field2 = Table2.Field2) AND (Table1.Field3 = Table2.Field3)

Cuando me verificar la consulta, me sale un error que dice:

There was an error with the expression. 
An Invalid SQL statement was used.
An invalid SQL statement was used. [Table1]

También, si alguien tiene otra solución que no se utilice esta herramienta, estoy feliz de escuchar acerca de él.

12voto

nagytech Puntos 2872

Su sintaxis es incorrecta.

Referencia

Si lees el Haga la tabla de consulta Ayuda en la barra lateral:

Expresión (opcional)

Una expresión SQL utilizada para seleccionar un subconjunto de registros. La sintaxis de la expresión difiere ligeramente dependiendo de la fuente de datos. Por ejemplo, si estás consultando un archivo o ArcSDE geodatabases, shapefiles, coberturas, dBase, o tablas INFO, adjuntan nombres de campo entre comillas:

"MY_FIELD"

Si está consultando bases de datos personales, encierre los campos en el cuadrado paréntesis:

[MY_FIELD]

etc...

Eso implicaría el formato correcto como:

"Table2"."f1" = "Table1"."f1" AND "Table2"."f2" = "Table1"."f2" AND "Table2"."f3" = "Table1"."f3" 

Guión

El siguiente fragmento de pitón le permitirá ejecutar la herramienta sin errores:

arcpy.MakeQueryTable_management("Table1;Table2","QueryTable11111","NO_KEY_FIELD","#","Table1.f1 #;Table1.f2 #;Table1.f3 #;Table2.f1 #;Table2.f2 #;Table2.f3 #","/\Table1/\./\f1/\ = /\Table2/\./\f1/\ AND /\Table1/\./\f2/\ = /\Table2/\./\f2/\ AND /\Table1/\./\f3/\ = /\Table2/\./\f3/\")

Resultado

enter image description here

Espero que esto ayude.

6voto

Barrett Puntos 1430

(FGDB 10.2 & ArcMAP 10.2) Tal vez abriendo una vieja pregunta - pero creo que esto es relevante. El creador de la tabla de consulta SQL arroja un error cuando se verifica, incluso si su sintaxis es correcta. Creé mi consulta sin comillas o paréntesis, simplemente

Table1.Field1 = Table2.Field1 AND Table1.Field2 = Table2.Field2

y no seleccionó verificar; simplemente corrí la herramienta y mi tabla de salida fue creada correctamente.

Otra pregunta de Stackexchange que hace referencia a este error; Revise la respuesta de User2118

1voto

zuba Puntos 477

Sólo como un recordatorio: también asegúrese de que las clases o tablas son parte de la misma base de datos geográficos Y asegúrate de que los campos clave en los que se operará la unión sean del mismo tipo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X