Mehr

Verwenden der Make Query Table zum Abfragen einer Viele-zu-Viele-Beziehung

Verwenden der Make Query Table zum Abfragen einer Viele-zu-Viele-Beziehung


Ich habe zwei Tabellen, die ich über eine attributierte Beziehungsklasse der Kardinalität Many-to-Many verbunden habe. Eines ist eine Tabelle mit Merkmalen von Wasserkörpern (Flüssen) und das andere ist eine Reihe von Schadstoffen, auf die die Wasserkörper bewertet wurden. Alle diese Tabellen (Flusstabelle, attributierte Beziehungsklasse, Schadstofftabelle) befinden sich in derselben File-Geodatabase. Der Grund für die Viele-zu-Viele-Beziehung ist, dass ein Gewässer durch viele Schadstoffe beeinträchtigt werden kann und ein Schadstoff viele Gewässer beeinträchtigen kann. In ArcGIS 9.3 konnte ich mit dem Werkzeug "Abfragetabelle erstellen" diese Tabellen verknüpfen und dann basierend auf einem einzelnen Schadstoff abfragen. Hier ist ein Beispiel für den VBA- oder SQL-Code, der dazu verwendet wird:

"Rivers_Streams_2014.ComID" = "rc_RiversStreams_2014.ComID_FK" UND "IR2014_RiversStreams.ID" = "rc_RiversStreams_2014.ID_FK" UND "IR2014_RiversStreams.Cause_Grouping" = 'Bakterien'

In ArcGIS 10.2.1 bekomme ich jetzt immer eine Fehlermeldung, die besagt, dass

"Ein erwartetes Feld wurde nicht gefunden oder konnte nicht richtig abgerufen werden."

Ich bin mir nicht sicher, was ich falsch mache, da ich versucht habe, die Optionen, die ich im Tool Abfragetabelle erstellen auf 20 verschiedene Arten auswähle, zu optimieren. Ich vermute, dass es ein Problem mit meinem Ausdruck gibt, da die Option "Verify" immer sagt, dass es nicht funktioniert. (Interessanterweise hat es das gleiche gemacht, als ich ArcGIS 9.3 hatte und trotzdem funktionierte es immer noch.)

Grundsätzlich versuche ich, mit diesem Tool nur die Wasserkörper abzufragen, die eine Bewertung für einen bestimmten Schadstoff haben, und diese als Kartenebene anzeigen zu können.


Haben Sie versucht, die doppelten Anführungszeichen ("") in einfache Anführungszeichen ("") zu ändern? Das hat dazu beigetragen, dass mein SQL-Code reibungslos funktionierte.


"Rivers_Streams_2014.ComID" wird als Feldname gelesen, wenn nicht - ComID ist der Feldname.

Versuchen Sie, als "Rivers_Streams".'ComID' oder als "Rivers_Streams"."ComID" neu zu schreiben.

Tun Sie dies für alle Feldnamen, auf die Sie verwiesen haben, und Sie sollten im Geschäft sein