正直なところ、この単純なクエリでは多くの問題は発生しないと思っていましたが、銃関連の犯罪が最も多い病棟を表示するクエリを作成することになっていますが、わずか 1 ~ 2 行のコードで行き詰まっており、結果を取得し続けています。 XBase でのこのエラー:
子孫::区: 入力として期待されるノード
結果を「GUN」犯罪に限定しているので、最初の「let」の代わりに「where」を使用しようとしましたが、次のエラーが発生します。
FLWOR 式が不完全です: 'return' が必要です。
これが私のコードです:
xquery version "1.0";
declare variable $crimes := doc('dc_crime.xml')//crime;
Query to display total number of gun crimes by ward
<gunCrimes>{
for $ward in distinct-values(doc('dc_crime.xml'))//ward
let $details := $crimes[ward=$ward]
let $count := count($details)
order by $count descending
return
<count ward="{$ward}" crimes="{$count}">{$details}</count>
}</gunCrimes>
サンプルの XML スニップ:
<crime id="13086252">
<dateTime>2013-06-23T20:02:00</dateTime>
<month>6-Jun</month>
<day>1-Sun</day>
<offense>ASSAULT W/DANGEROUS WEAPON</offense>
<method>GUN</method>
<ward>8</ward>
</crime>
<crime id="13086254">
<dateTime>2013-06-23T20:56:00</dateTime>
<month>6-Jun</month>
<day>1-Sun</day>
<offense>THEFT/OTHER</offense>
<method>OTHERS</method>
<ward>2</ward>
</crime>
<crime id="13086257">
<dateTime>2013-06-23T20:52:00</dateTime>
<month>6-Jun</month>
<day>1-Sun</day>
<offense>THEFT/OTHER</offense>
<method>OTHERS</method>
<ward>7</ward>
</crime>
<crime id="13086268">
<dateTime>2013-06-23T19:54:00</dateTime>
<month>6-Jun</month>
<day>1-Sun</day>
<offense>ROBBERY</offense>
<method>GUN</method>
<ward>8</ward>
</crime>
<crime id="13086278">
<dateTime>2013-06-23T21:50:00</dateTime>
<month>6-Jun</month>
<day>1-Sun</day>
<offense>THEFT F/AUTO</offense>
<method>OTHERS</method>
<ward>1</ward>
</crime>
私はまだ XQuery に非常に慣れていませんが、誰かが私が間違っていることを教えてくれますか? どうもありがとうございました。