Select Max value arcpy<\/A>0;, derselben GeoNet-Frage, die mich vor vielen Monaten dazu brachte, dieses Problem zu recherchieren. Beginnen wir mit zwei Basistabellen (TableA und TableB), jede mit einem Text- und einem Integer-Feld, wobei eine Tabelle eine Teilmenge der Datensätze der anderen Tabelle enthält.<\/P>
<\/P>
<\/P>
- und version-Spalte in TableB haben. Die korrekte Tabellenansicht ist im obigen Screenshot dargestellt. Aus den Ergebnissen des Codes ist ersichtlich, dass keine Datensätze aus der file geodatabase zurückgegeben werden. <SPAN class="operator token">>><\/><SPAN class="operator token">><\/> fgdb <SPAN class="operator token">=<\/> <SPAN class="comment token"># Pfad zur file geodatabase<\/>\n<SPAN class="operator token">>><\/><SPAN class="operator token">><\/> pgdb <SPAN class="operator token">=<\/> <SPAN class="comment token"># Pfad zur personal geodatabase<\/>\n<SPAN class="operator token">>><\/><SPAN class="operator token">><\/> egdb <SPAN class="operator token">=<\/> <SPAN class="comment token"># Pfad zur enterprise geodatabase, im Beispiel wird SQL Server verwendet<\/>\n<SPAN class="operator token">>><\/><SPAN class="operator token">><\/> gpkg <SPAN class="operator token">=<\/> <SPAN class="comment token"># Pfad zum GeoPackage<\/>\n<SPAN class="operator token">>><\/><SPAN class="operator token">><\/> gdbs <SPAN class="operator token">=<\/> <SPAN class="punctuation token">(<\/>fgdb<SPAN class="punctuation token">,<\/> pgdb<SPAN class="punctuation token">,<\/> egdb<SPAN class="punctuation token">,<\/> gpkg<SPAN class="punctuation token">)<\/>\n<SPAN class="operator token">>><\/><SPAN class="operator token">><\/> \n<SPAN class="operator token">>><\/><SPAN class="operator token">><\/> values <SPAN class="operator token">=<\/> <SPAN class="punctuation token">(<\/><SPAN class="punctuation token">(<\/><SPAN class="string token">"A"<\/><SPAN class="punctuation token">,<\/> <SPAN class="number token">1<\/><SPAN class="punctuation token">)<\/><SPAN class="punctuation token">,<\/> <SPAN class="punctuation token">(<\/><SPAN class="string token">"A"<\/><SPAN class="punctuation token">,<\/> <SPAN class="number token">2<\/><SPAN class="punctuation token">)<\/><SPAN class="punctuation token">,<\/> <SPAN class="punctuation token">(<\/><SPAN class="string token">"B"<\/><SPAN class="punctuation token">,<\/> <SPAN class="number token">1<\/><SPAN class="punctuation token">)<\/><SPAN class="punctuation token">,<\/> <SPAN class="punctuation token">(<\/><SPAN class("string")token>"B"<spanclass("punctuation")token>,spanclass("number")token>2spanclass("punctuation")token>)spanclass("punctuation")token>,
spanclass("punctuation")token>...spanclass("punctuation")token> spanclass("punctuation")token>(spanclass("string")token>"C"spanclass("punctuation")token>,spanclass("number")token>2spanclass("punctuation")token>)spanclass("punctuation")token>,spanclass("punctuation")token>(spanclass("string")token>"C"spanclass("punctuation")token>,spanclass("number")token>3spanclass("punctuation")token>)spanclass("punctuation")token>,spanclass("punctuation")token>(spanclass("string")token>"D"spanclass("punctuation")token>, Nonespanclass("punctuation")token>)spanclass("punctuation")token>,spanclass("punctuation")token>(spanclass("string")token>"E"spanclass("punctuation")token>,spanclass("number")token>1spanclass("punctuation")token>)spanclass("punctuation")token>)
spanclass("punctuation")token>...
<spanclass(“operator”)token>>>
<spanclass(“keyword”)token>for</span> gdb <spanclass(“keyword”)token>in</span> gdbs<spanclass(“punctuation”)token>: class="punctuation token">)<\/SPAN><SPAN class="punctuation token">:<\/SPAN>
<SPAN class="punctuation token">.<\/SPAN><SPAN class="punctuation token">.<\/SPAN><SPAN class="punctuation token">.<\/SPAN> table <SPAN class="operator token">=<\/SPAN> arcpy<SPAN class="punctuation token">.<\/SPAN>CreateTable_management<SPAN class="punctuation token">(<\/SPAN>gdb<SPAN class="punctuation token">, <\/SPAN>table_names<SPAN class="punctuation token">[<\/SPAN>i<SPAN class="number token">-1<\/SPAN><SPAN class="punctuation token">]<\/SPAN><SPAN class="punctuation token">)<\/SPAN>
<SPAN class="punctuation token">.<\/SPAN><SPAN class="punctuation token">.<\/SPAN><SPAN class="punctuation token">.<\/SPAN> arcpy<SPAN class="punctuation token">.<\/SPAN>AddField_management<SPAN class="punctuation token">(<\/SPAN>table<SPAN class="punctuation token">, <\/SPAN><SPAN class="string token">"id"<\/SPAN><SPAN class="punctuation token">, <\/SPAN><SPAN class="string token">"TEXT"<\/SPAN><SPAN class="punctuation token">)<\/SPAN>
<SPAN class="punctuation token">.<\/SPAN><SPAN class="punctuation token">.<\/SPAN><SPAN class="punctuation token">.<\/SPAN> arcpy<SPAN class="punctuation token">.<\/SPAN>AddField_management<SPAN class="punctuation token">(<\/Span>table<SPAN class="punctuation token">, <\/Span><SPAN class="string token">"version"<\/Span><SPAN class="punctuation token">, <\/Span><SPAN class="string token">"LONG"<\/Span><SPAN class="punctuation token">)<\/Span>
<SPAN class="punctuation token">.<\/Span><SPAN class="punctuation token">.<\/Span><SPAN class="punctuation token">.<\/Span> <span class="keyword token">with</span> arcpy<SPAN class="punctuation token">.<\/Span>da<SPAn class="punctuation token">.<\/Span>InsertCursor<SPAn class="punctuation token">(<SPAn>table<SPAn>, <SPAn>(<SPAn>"id"<SPAn>, "version")</SPAn>) <span class="keyword token">as</span> cur:<SPAn>
<SPAn> <span class="keyword token">for</span> value <span class="keyword token">in</span> values[::<SPAn>i]:
<SPAn> cur.insertRow(value)
<SPAn>
<SPAn> qry = (<SPAn>"EXISTS (SELECT 1"
<SPAn> & nbsp; FROM TableB"
<SPAn>& nbsp; WHERE TableB.id = TableA.id"
<SPAn>& nbsp; AND TableB.version = TableA.version)"
<SPAn>& nbsp; )
table_view = arcpy.MakeTableView_management(table, "table_view", qry)
print arcpy.GetCount_management(table_view)
arcpy.Delete_management(table_view)
0
3
3
3
>> > <span class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span >< < EM O J I _ 31 > > </ span > < span > << EM O J I _ 32 > > </ span > < span > << EM O J I _ 33 > > </ span > < / SPAN > < / CODE > < / PRE > < P > Das obige Beispielcode erstellt die zwei grundlegenden Tabellen in einer file geodatabase, personal geodatabase, enterprise geodatabase (<em>I used SQL Server</em>) und einem <a href= "http://www.geopackage.org/" rel= "nofollow noopener noreferrer" target= "_blank" >GeoPackage</a>. Der Code erstellt dann für jede der Geodatabases eine Tabellenansicht, indem EXISTS mit einer einfachen korrelierten Unterabfrage verwendet wird, um die Datensätze aus TableA auszuwählen, die eine übereinstimmende <code style= "font-family: courier new,courier,monospace;" >id