XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
pattex007 ex007Subject: count in xquery
Author: pattex007 ex007
Date: 10 Jul 2012 10:42 AM
Originally Posted: 10 Jul 2012 10:24 AM
I'm trying to count the guests per hotel between a specific date but i dont get any values with this xquery. What am i doing wrong here ?



xquery version "1.0" ;
<system>{
for $hotel in doc("doc.xml")//Hotel
let $hotelName := $hotel/@name
return
<Hotel Name="{($hotelName )}" >
{
let $beginWeek := fn:current-date() - xs:dayTimeDuration(concat('P', 7, 'D'))
let $endWeek := fn:current-date() - xs:dayTimeDuration(concat('P', 1, 'D'))

for $beginDate in $hotel/reservation/@begin_date
for $endDate in $hotel/reservation/@end_date

where ($beginDate gt $beginWeek and $beginDate lt $endWeek ) and
($endDate gt $beginWeek and $endDate lt $endWeek )

return
<day date="{ count($hotel/reservation/guest)}" />

}
</Hotel>
}
</system>



xml is like this:
<Hotel naam="hotelName">
<reservation ID="3" begin_date="2012-06-18" eind_date="2012-06-26">
<client ID="15" name="Axel Nieves" >
<room nr="E3E" kamertype="type 4">
<guest ID="404" naam="Florence Flores" />
<guest ID="203" naam="Charde Ashley"/>
</room>
/client>
</reservation>
</Hotel>

Postnext
Ivan PedruzziSubject: count in xquery
Author: Ivan Pedruzzi
Date: 10 Jul 2012 03:36 PM

See if the following helps. Which XQuery processor are you running?


Ivan Pedruzzi
Stylus Studio Team


Input document
-----------------------------


<?xml version="1.0"?>
<Hotel name="hotelName">
<reservation ID="3" begin_date="2012-07-05" end_date="2012-07-06">
<client ID="15" name="Axel Nieves">
<room nr="E3E" kamertype="type 4">
<guest ID="404" naam="Florence Flores"/>
<guest ID="203" naam="Charde Ashley"/>
</room>
</client>
</reservation>
</Hotel>



Query
-----------------------------

xquery version "1.0";

<system>{
for $hotel in doc("doc.xml")//Hotel
let $hotelName := $hotel/@name
return
<Hotel Name="{ ($hotelName) }">
{
let $beginWeek := fn:current-date() - xs:dayTimeDuration(concat('P', 7, 'D'))
let $endWeek := fn:current-date() - xs:dayTimeDuration(concat('P', 1, 'D'))
for $beginDate in xs:date($hotel/reservation/@begin_date)
for $endDate in xs:date($hotel/reservation/@end_date)
where ($beginDate gt $beginWeek and $beginDate lt $endWeek)
and ($endDate gt $beginWeek and $endDate lt $endWeek)
return <day date="{ count($hotel/reservation/client/room/guest) }"/>
}
</Hotel>
}
</system>


Result
-----------------------------

<system>
<Hotel Name="hotelName">
<day date="2"/>
</Hotel>
</system>


Postnext
pattex007 ex007Subject: count in xquery
Author: pattex007 ex007
Date: 10 Jul 2012 04:04 PM
thanks for reply

it works for one reservation but if i add one more reservation i get something like this:


<system>
<Hotel Name="hotelName">
<day date="4"/>
<day date="4"/>
<day date="4"/>
<day date="4"/>
</Hotel>
</system>

i'm using Altova XMLSpy

Posttop
Ivan PedruzziSubject: count in xquery
Author: Ivan Pedruzzi
Date: 10 Jul 2012 04:43 PM
Originally Posted: 10 Jul 2012 04:34 PM
Sorry, this forum is reserved to Stylus Studio customers.

Ivan Pedruzzi
Stylus Studio Team

 
Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.