5 votos

Subconsulta de selección utilizando otra tabla en la base de datos de ArcGIS

Necesito 'extraer' una lista de variables basadas en los IDs de otra tabla. Usar una subconsulta parece ser el mejor método. Tengo una gran lista de variables y he calculado externamente una segunda lista. Esta segunda lista no tiene datos de coordenadas adjuntos, por lo que necesito seleccionar los mismos valores en la lista original para extraer los datos. El shapefile y la tabla están ambos en el catálogo.

Intento hacer una selección simple por atributo. Me da el

SELECT * FROM US_Maize_All WHERE: "pointid" = (SELECT "pointid" FROM Maize_Table)

pero esto solo me da un error de expresión SQL. Los parámetros "pointid" son seleccionados desde la caja de opciones. Hasta donde puedo ver, este es el formato exacto como cualquier otra información que puedo encontrar en línea. Debe ser algo que estoy pasando por alto por qué esto no funcionará.

3voto

Steve Puntos 11

Las subconsultas anidadas en ArcGIS solo están disponibles al usar formatos de geodatabase, según los archivos de ayuda en la parte inferior de este enlace que también enlaza a este otro más detallado aproximadamente a mitad de la página.

Las coberturas, shapefiles y otras fuentes de datos basadas en archivos que no son geodatabase no admiten subconsultas. Las subconsultas realizadas en clases de entidades y tablas versionadas de ArcSDE no devolverán entidades que se almacenen en las tablas delta. Las geodatabases de archivos brindan el soporte limitado para subconsultas explicado en esta sección, mientras que las geodatabases personales y ArcSDE brindan soporte completo. Para obtener información sobre el conjunto completo de capacidades de subconsultas de las geodatabases personales y ArcSDE, consulte la documentación de su SGBD.

Si convierte su shapefile a una clase de entidad de geodatabase y también lleva la tabla a la geodatabase, debería poder usar la consulta deseada. Creo que la sintaxis para el diálogo sería:

"pointid" IN (SELECT "pointid" FROM Maize_Table)

Se proporcionan algunos ejemplos de sintaxis en los archivos de ayuda enlazados anteriormente. La misma restricción se aplica a Python, pero la sintaxis puede diferir.

0voto

Adrian Schönig Puntos 121

Si no quieres convertir todo a una geodatabase, tal vez podrías intentar simplemente unirlos en arc, con pointid como el campo de unión.

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