FUNCTION bid_summary() { FOR $i IN DISTINCT document("bids.xml")//itemno LET $b := document("bids.xml")//bid_tuple[itemno = $i] RETURN $i , count($b) } ( FOR $item IN document("items.xml")//item_tuple, $bc IN bid_summary()/bid_count[itemno = $item/itemno] WHERE $bc/nbids = ( LET $n := bid_summary()//nbids RETURN max($n) ) RETURN $item/itemno , $item/description , $bc/nbids/text() )