호텔 체인과 관련된 데이터가 포함 된 큰 XML 파일이 있습니다. 일별, 주별, 호텔마다 그들은 그들의 보고서에 일부 데이터를 보관 :계산 된 평균의 평균
<Report week="1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="report.xsd">
<Days>
<Day id="1" naam="Monday">
<Hotels>
<Hotel id="1" naam="Bonotel Antwerp">
<Stays>
<Stay id="1">
<Room id="1" number="1"/>
<Roomtype id="1" naam="oneperson" price="20.00"/>
<Period id="1" naam="lowseason" price="20.00"/>
<Formula id="1" naam="roomandbreakfast" price="20.00"/>
<Facilities>
<Facility id="1" naam="swimming" price="5.00"/>
<Facility id="2" naam="golf" price="20.00"/>
</Facilities>
<Guest id="1" naam="John Williams"/>
</Stay>
<Stay id="2">
<Room id="2" number="2"/>
<Roomtype id="1" naam="oneperson" price="20.00"/>
<Period id="1" naam="lowseason" price="20.00"/>
<Formula id="1" naam="roomandbreakfast" price="20.00"/>
<Facilities>
<Facility id="2" naam="golf" price="20.00"/>
<Facility id="3" naam="minibar" price="10.00"/>
</Facilities>
<Guest id="2" naam="Ray Kurzweil"/>
</Stay>
<Stay id="3">
<Room id="3" number="3"/>
<Roomtype id="2" naam="twoperson" price="40.00"/>
<Period id="1" naam="lowseason" price="20.00"/>
<Formula id="2" naam="halfpension" price="30.00"/>
<Facilities>
<Facility id="4" naam="tennis" price="20.00"/>
<Facility id="4" naam="tennis" price="20.00"/>
</Facilities>
<Guest id="3" naam="Stephen Hawking"/>
</Stay>
</Stays>
</Hotel>
(: ... Other Hotels ... :)
</Hotels>
</Day>
(: ... Other Days ... :)
</Days>
</Report>
XQuery를 사용하여, 나는이 평균 손님이 지출 무엇을 계산해야합니다. Roomtype 가격, Periode 가격, Formula 가격 및 시설 합계입니다. 나는이 XQuery를 함께했다 :이 결과를 생성
xquery version "1.0";
<ReportResult week="1">
{
for $x in (1 to 7)
return
for $stays in doc("report.xml")//Report/Days/Day[@id=$x]/Hotels/Hotel[@id=1]/Stays
let $average := avg(
for $v in $stays/Stay
return sum($v/Roomtype/@price) + sum($v/Facilities/Facility/@prijs) + sum($v/Formula/@price) + sum($v/Period/@price)
)
return
<AverageSpending hotel="Bonotel Antwerpen" day="{data($x)}">
{data(round-half-to-even($average, 2))}
</AverageSpending>
}
</Reportresult>
내가 기대 :
<Reportresult week="1">
<Averagespending hotel="Bonotel Antwerpen" day="1">101.67</AverageSpending>
<Averagespending hotel="Bonotel Antwerpen" day="2">321.67</AverageSpending>
(: ... etc... :)
<Averagespending hotel="Bonotel Antwerpen" day="2">255</AverageSpending>
</Reportresult>
그러나 나는 또한 전체 평균을 계산하고 싶습니다. 그래서 모든 평균의 합이
<TotalAverage>198,67</TotalAverage>
같은 출력 뭔가 7 일 나눈하지만 문제가이 전체 평균을 계산하는 데 문제가 있습니다. 자바에서는 총 변수를 사용하고 각 루프의 계산 된 평균을 사용하여 증가 시키지만 분명히 여기서는 작동하지 않습니다. XQuery로 어떻게이 작업을 수행 할 수 있습니까? 감사.
작업 및/또는 제공하기 위해 우리에게 몇 가지 예제 데이터를 제공하세요 데이터가 필요없는 좀 더 추상적 인 예. –
완료. 제발 편집하십시오. – Matthias