xquery

XQuery to get Ledger Names and Amount

Here’s a XQUERY STATEMENT to get the Ledger Names and Amount from XML generated from Tally Software.

 

for $row in (//ENVELOPE/BODY/IMPORTDATA/REQUESTDATA/TALLYMESSAGE/VOUCHER)
let
$vchtype := ($row/VOUCHERTYPENAME),
$vchdate := ($row/DATE)
return
<voucher>
<vchtype>{data($vchtype)}</vchtype>
<date>{data($vchdate)}</date>
{
for $ledgername in distinct-values($row/descendant::LEDGERNAME)
let $amount := (sum($row/descendant::LEDGERNAME[.=$ledgername]/parent::node()/AMOUNT))
return
<row>
<ledger>{$ledgername}</ledger>
<amount>{$amount}</amount>
</row>
}
</voucher>

Be the first to comment - What do you think?
Posted by admin - May 26, 2011 at 6:26 pm

Categories: xquery   Tags: