xQuery分组问题

时间:2011-05-01 04:24:51

标签: xml xquery

这是xml:

<?xml version="1.0" encoding="utf-8"?>
<library xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      xsi:noNamespaceSchemaLocation="library.xsd">
<items>
<book asin="0201100886"
  created="128135928"
  lastLookupTime="128135928">
  <uuid>BA57A934-6CDC-11D9-830B-000393D3DE16</uuid>
  <title>Compilers</title>
  <authors>
    <author>Alfred V. Aho</author>
    <author>Ravi Sethi</author>
    <author>Jeffrey D. Ullman</author>
  </authors>
  <publisher>Addison Wesley</publisher>
  <published>1986-01-01</published>
  <price>102.00</price>
  <purchaseDate>2005-01-22</purchaseDate>
</book>

<book asin="0122513363" created="128135600" lastLookupTime="128136224">
  <uuid>F7468E09-6CDB-11D9-830B-000393D3DE16</uuid>
  <title>Database Driven Web Sites</title>
  <authors>
    <author>Jesse Feiler</author>
  </authors>
  <publisher>Morgan Kaufmann</publisher>
  <published>1998-04-15</published>
  <edition>Paperback</edition>
  <price>50.95</price>
  <purchaseDate>2005-01-22</purchaseDate>
  <currentValue>35.00</currentValue>
  <netRating>1.5</netRating>
  <genres>
    <genre>Computer Bks - Internet</genre>
    <genre>Computer Books: Web Programming</genre>
    <genre>Computer Networks</genre>
    <genre>Computers</genre>
    <genre>Database Management - General</genre>
    <genre>Database management</genre>
    <genre>Design</genre>
    <genre>Distributed Databases</genre>
    <genre>Information Technology</genre>
    <genre>Internet - Web Site Design</genre>
    <genre>Networking - General</genre>
    <genre>Web sites</genre>
    <genre>Computers / Computer Science</genre>
  </genres>
  <upc>608628133638</upc>
</book>

<book asin="0201441241"
  created="128136896"
  lastLookupTime="128136896">
  <uuid>FBC45DF4-6CDE-11D9-830B-000393D3DE16</uuid>
  <title>Introduction to Automata Theory, Languages, and Computation (2nd Edition)</title>
  <authors>
    <author>John E. Hopcroft</author>
    <author>Rajeev Motwani</author>
    <author>Jeffrey D. Ullman</author>
  </authors>
  <publisher>Addison Wesley</publisher>
  <published>2000-11-14</published>
  <price>108.20</price>
  <purchaseDate>2005-01-22</purchaseDate>
</book>


<book asin="0471250600"
  created="128136896"
  lastLookupTime="128136896">
  <uuid>FBC7CA56-6CDE-11D9-830B-000393D3DE16</uuid>
  <title>Operating System Concepts</title>
  <authors>
    <author>Abraham  Silberschatz</author>
    <author>Greg  Gagne</author>
    <author>Peter Baer  Galvin</author>
  </authors>
  <publisher>Wiley</publisher>
  <published>2002-03-08</published>
  <price>107.95</price>
  <purchaseDate>2005-01-22</purchaseDate>
</book>

<book asin="0321193628"
  created="128136896"
  lastLookupTime="128136896">
  <uuid>FBCB3DCF-6CDE-11D9-830B-000393D3DE16</uuid>
  <title>Concepts of Programming Languages, Sixth Edition</title>
  <authors>
    <author>Robert W. Sebesta</author>
  </authors>
  <publisher>Addison Wesley</publisher>
  <published>2003-07-24</published>
  <price>112.40</price>
  <purchaseDate>2005-01-22</purchaseDate>
</book>

<book asin="0138613370" created="128136944" lastLookupTime="128136944">
  <uuid>19E5E602-6CDF-11D9-830B-000393D3DE16</uuid>
  <title>First Course in Database Systems, A</title>
  <authors>
    <author>Jeffrey D. Ullman</author>
    <author>Jennifer Widom</author>
  </authors>
  <publisher>Prentice Hall</publisher>
  <published>1997-04-02</published>
  <edition>Hardcover</edition>
  <price>67.00</price>
  <purchaseDate>2005-01-22</purchaseDate>
  <netRating>3.2</netRating>
  <genres>
    <genre>Computer Books: Database</genre>
    <genre>Computers</genre>
    <genre>Database Engineering</genre>
    <genre>Database Management - General</genre>
    <genre>Database management</genre>
  </genres>
  <recommendations>
    <book asin="0130402648"
          created="128136952"
          lastLookupTime="128136952">
      <uuid>1C60074A-6CDF-11D9-830B-000393D3DE16</uuid>
      <title>Database System Implementation</title>
      <authors>
        <author>Hector Garcia-Molina</author>
        <author>Jeffrey D. Ullman</author>
        <author>Jennifer D. Widom</author>
      </authors>
      <publisher>Prentice Hall</publisher>
      <published>1999-06-11</published>
      <price>89.00</price>
      <purchaseDate>2005-01-22</purchaseDate>
    </book>
    <book asin="0130319953"
          created="128136952"
          lastLookupTime="128136952">
      <uuid>1C635DB0-6CDF-11D9-830B-000393D3DE16</uuid>
      <title>Database Systems: The Complete Book</title>
      <authors>
        <author>Hector Garcia-Molina</author>
        <author>Jeffrey D. Ullman</author>
        <author>Jennifer D. Widom</author>
      </authors>
      <publisher>Prentice Hall</publisher>
      <published>2001-10-02</published>
      <price>98.00</price>
      <purchaseDate>2005-01-22</purchaseDate>
    </book>
    <book asin="0201976994"
          created="128136952"
          lastLookupTime="128136952">
      <uuid>1C66B7B4-6CDF-11D9-830B-000393D3DE16</uuid>
      <title>Computer Networking: A Top-Down Approach Featuring the Internet</title>
      <authors>
        <author>James F. Kurose</author>
        <author>Keith W. Ross</author>
        <author>James Kurose</author>
        <author>Keith Ross</author>
      </authors>
      <publisher>Addison Wesley</publisher>
      <published>2002-07-17</published>
      <price>100.00</price>
      <purchaseDate>2005-01-22</purchaseDate>
    </book>
    <book asin="0131433512"
          created="128136952"
          lastLookupTime="128136952">
      <uuid>1C6AC88C-6CDF-11D9-830B-000393D3DE16</uuid>
      <title>Computer Networks and Internets, Fourth Edition</title>
      <authors>
        <author>Douglas E Comer</author>
        <author>Ralph E. Droms</author>
      </authors>
      <publisher>Prentice Hall</publisher>
      <published>2003-07-28</published>
      <price>100.00</price>
      <purchaseDate>2005-01-22</purchaseDate>
    </book>
    <book asin="0262062178"
          created="128136952"
          lastLookupTime="128136952">
      <uuid>1C6E712C-6CDF-11D9-830B-000393D3DE16</uuid>
      <title>Essentials of Programming Languages - 2nd Edition</title>
      <authors>
        <author>Daniel P. Friedman</author>
        <author>Mitchell Wand</author>
        <author>Christopher T. Haynes</author>
      </authors>
      <publisher>The MIT Press</publisher>
      <published>2001-01-29</published>
      <price>62.00</price>
      <purchaseDate>2005-01-22</purchaseDate>
    </book>
    <book asin="0471250600"
          created="128136952"
          lastLookupTime="128136952">
      <uuid>1C71B23E-6CDF-11D9-830B-000393D3DE16</uuid>
      <title>Operating System Concepts</title>
      <authors>
        <author>Abraham  Silberschatz</author>
        <author>Greg  Gagne</author>
        <author>Peter Baer  Galvin</author>
      </authors>
      <publisher>Wiley</publisher>
      <published>2002-03-08</published>
      <price>107.95</price>
      <purchaseDate>2005-01-22</purchaseDate>
    </book>
    <book asin="0137903952"
          created="128136952"
          lastLookupTime="128136952">
      <uuid>1C764AD4-6CDF-11D9-830B-000393D3DE16</uuid>
      <title>Artificial Intelligence: A Modern Approach (2nd Edition)</title>
      <authors>
        <author>Stuart J. Russell</author>
        <author>Peter Norvig</author>
      </authors>
      <publisher>Prentice Hall</publisher>
      <published>2002-12-20</published>
      <price>93.33</price>
      <purchaseDate>2005-01-22</purchaseDate>
    </book>
    <book asin="155860832X"
          created="128136952"
          lastLookupTime="128136952">
      <uuid>1C898640-6CDF-11D9-830B-000393D3DE16</uuid>
      <title>Computer Networks: A Systems Approach, 3rd Edition</title>
      <authors>
        <author>Larry L. Peterson</author>
        <author>Bruce S. Davie</author>
      </authors>
      <publisher>Morgan Kaufmann</publisher>
      <published>2003-05-22</published>
      <price>89.95</price>
      <purchaseDate>2005-01-22</purchaseDate>
    </book>
    <book asin="0130669474"
          created="128136952"
          lastLookupTime="128136952">
      <uuid>1C8DD37A-6CDF-11D9-830B-000393D3DE16</uuid>
      <title>SQL Fundamentals (2nd Edition)</title>
      <authors>
        <author>John J. Patrick</author>
      </authors>
      <publisher>Prentice Hall PTR</publisher>
      <published>2002-05-07</published>
      <price>54.99</price>
      <purchaseDate>2005-01-22</purchaseDate>
    </book>
    <book asin="0321122267"
          created="128136952"
          lastLookupTime="128136952">
      <uuid>1C91D772-6CDF-11D9-830B-000393D3DE16</uuid>
      <title>Fundamentals of Database Systems, Fourth Edition</title>
      <authors>
        <author>Ramez Elmasri</author>
        <author>Shamkant B. Navathe</author>
      </authors>
      <publisher>Addison Wesley</publisher>
      <published>2003-07-23</published>
      <price>104.20</price>
      <purchaseDate>2005-01-22</purchaseDate>
    </book>
  </recommendations>
</book>

<book asin="1558604820" created="128136024" lastLookupTime="128136024">
  <uuid>F3C7B24F-6CDC-11D9-830B-000393D3DE16</uuid>
  <title>A Complete Guide to DB2 Universal Database</title>
  <authors>
    <author>D. D. Chamberlin</author>
    <author>Don Chamberlin</author>
  </authors>
  <publisher>Morgan Kaufmann</publisher>
  <published>1998-08-15</published>
  <edition>Paperback</edition>
  <price>62.95</price>
  <purchaseDate>2005-01-22</purchaseDate>
  <netRating>4.4</netRating>
  <genres>
    <genre>Computer Bks - Data Base Management</genre>
    <genre>Computer Books: Database</genre>
    <genre>Computers</genre>
    <genre>Database Management - General</genre>
    <genre>General</genre>
    <genre>IBM Database 2</genre>
    <genre>Information Storage &amp; Retrieval</genre>
    <genre>Relational Databases</genre>
    <genre>Computers / Information Storage &amp; Retrieval</genre>
  </genres>
  <recommendations>
    <book asin="0072133449"
          created="128136024"
          lastLookupTime="128136024">
      <uuid>F6B35F21-6CDC-11D9-830B-000393D3DE16</uuid>
      <title>DB2: The Complete Reference (Complete Reference Series)</title>
      <authors>
        <author>Roman B. Melnyk</author>
        <author>Paul C. Zikopoulos</author>
      </authors>
      <publisher>McGraw-Hill Companies</publisher>
      <published>2001-10-01</published>
      <price>59.99</price>
      <purchaseDate>2005-01-22</purchaseDate>
    </book>
    <book asin="0130661112"
          created="128136024"
          lastLookupTime="128136024">
      <uuid>F6B97E54-6CDC-11D9-830B-000393D3DE16</uuid>
      <title>DB2 UDB v8 Handbook for Windows and UNIX/Linux</title>
      <authors>
        <author>Philip K. Gunning</author>
      </authors>
      <publisher>Prentice Hall PTR</publisher>
      <published>2003-08-06</published>
      <price>59.99</price>
      <purchaseDate>2005-01-22</purchaseDate>
    </book>
    <book asin="0131007726"
          created="128136024"
          lastLookupTime="128136024">
      <uuid>F6BCBB88-6CDC-11D9-830B-000393D3DE16</uuid>
      <title>DB2 SQL Procedural Language for Linux, Unix and Windows</title>
      <authors>
        <author>Paul Yip</author>
        <author>Drew Bradstock</author>
        <author>Hana Curtis</author>
        <author>Michael Gao</author>
        <author>Zamil Janmohamed</author>
        <author>Clara Liu</author>
        <author>Fraser McArthur</author>
      </authors>
      <publisher>Prentice Hall PTR</publisher>
      <published>2002-12-24</published>
      <price>59.99</price>
      <purchaseDate>2005-01-22</purchaseDate>
    </book>
    <book asin="0131424653"
          created="128136024"
          lastLookupTime="128136024">
      <uuid>F6C0A296-6CDC-11D9-830B-000393D3DE16</uuid>
      <title>DB2 UDB V8.1 Certification Exam 700 Study Guide</title>
      <authors>
        <author>Roger E. Sanders</author>
      </authors>
      <publisher>Prentice Hall PTR</publisher>
      <published>2003-09-17</published>
      <price>49.99</price>
      <purchaseDate>2005-01-22</purchaseDate>
    </book>
    <book asin="0764508415"
          created="128136024"
          lastLookupTime="128136024">
      <uuid>F6C4058C-6CDC-11D9-830B-000393D3DE16</uuid>
      <title>DB2 Fundamentals Certification for Dummies</title>
      <authors>
        <author>Paul C.  Zikopoulos</author>
        <author>Jennifer  Gibbs</author>
        <author>Roman B.  Melnyk</author>
      </authors>
      <publisher>For Dummies</publisher>
      <published>2001-08-01</published>
      <price>34.99</price>
      <purchaseDate>2005-01-22</purchaseDate>
    </book>
    <book asin="0130463612"
          created="128136024"
          lastLookupTime="128136024">
      <uuid>F6D9A3D8-6CDC-11D9-830B-000393D3DE16</uuid>
      <title>DB2 Universal Database V8 for Linux, UNIX, and Windows Database Administration Certification Guide (5th Edition)</title>
      <authors>
        <author>George Baklarz</author>
        <author>Bill Wong</author>
      </authors>
      <publisher>Prentice Hall PTR</publisher>
      <published>2003-02-10</published>
      <price>59.99</price>
      <purchaseDate>2005-01-22</purchaseDate>
    </book>
    <book asin="0130463884"
          created="128136024"
          lastLookupTime="128136024">
      <uuid>F6DDBAB9-6CDC-11D9-830B-000393D3DE16</uuid>
      <title>Advanced DBA Certification Guide and Reference for DB2 UDB v8 for Linux, Unix and Windows</title>
      <authors>
        <author>Dwaine R. Snow</author>
        <author>Thomas Xuan Phan</author>
        <author>Dwaine Snow</author>
      </authors>
      <publisher>Prentice Hall PTR</publisher>
      <published>2003-07-07</published>
      <price>59.99</price>
      <purchaseDate>2005-01-22</purchaseDate>
    </book>
    <book asin="155860443X"
          created="128136024"
          lastLookupTime="128136024">
      <uuid>F6E1063D-6CDC-11D9-830B-000393D3DE16</uuid>
      <title>Advanced Database Systems (The Morgan Kaufmann Series in Data Management Systems)</title>
      <authors>
        <author>Carlo Zaniolo</author>
        <author>Stefano Ceri</author>
        <author>Christos Faloutsos</author>
        <author>Richard T. Snodgrass</author>
        <author>V. S. Subrahmanian</author>
        <author>Roberto Zicari</author>
      </authors>
      <publisher>Morgan Kaufmann</publisher>
      <published>1997-05-01</published>
      <price>88.95</price>
      <purchaseDate>2005-01-22</purchaseDate>
    </book>
    <book asin="0131840487"
          created="128136024"
          lastLookupTime="128136024">
      <uuid>F6E441CE-6CDC-11D9-830B-000393D3DE16</uuid>
      <title>DB2 UDB V8.1 Certification Exams 701 and 706 Study Guide</title>
      <authors>
        <author>Roger E. Sanders</author>
      </authors>
      <publisher>Prentice Hall PTR</publisher>
      <published>2003-12-12</published>
      <price>49.99</price>
      <purchaseDate>2005-01-22</purchaseDate>
    </book>
    <book asin="0132037955"
          created="128136024"
          lastLookupTime="128136024">
      <uuid>F6E77C2C-6CDC-11D9-830B-000393D3DE16</uuid>
      <title>DB2 High Performance Design and Tuning</title>
      <authors>
        <author>Richard Yevich</author>
        <author>Susan Lawson</author>
        <author>Richard A. Yevich</author>
      </authors>
      <publisher>Prentice Hall PTR</publisher>
      <published>2000-08-24</published>
      <price>54.99</price>
      <purchaseDate>2005-01-22</purchaseDate>
    </book>
  </recommendations>
</book>

               约翰·多伊        555-1212                                                  玛丽珍        555-1213                                                  比尔琼斯        555-1312                         安妮玛丽        555-1314                                                          

这是我的xQuery语句:

xquery version "1.0";
let $library := doc('library.xml')
for $borrower in $library/library/borrowers/borrower
for $name in distinct-values($borrower/name)
let $asins := data($borrower/borrowed/book/@asin)
let $book :=  $library/library/items/book[@asin = $asins]
      order by $book/published
      return
      <book>
      <name>{$name}</name>
      <title>{data($book/title)}</title>
      <date>{data($book/published)}</date>
      </book>

这是输出:

<book>
<name> John Doe </name>
<title>Database Driven Web SitesFirst Course in Database Systems, A</title>
<date>1998-04-151997-04-02</date>
</book>
<book>
<name> Mary Jane </name>
<title>CompilersDatabase Driven Web Sites</title>
<date>1986-01-011998-04-15</date>
</book>
<book>
<name> Bill Jones </name>
<title/>
<date/>
</book>
<book>
<name> Anne Marie</name>
<title>CompilersDatabase Driven Web SitesFirst Course in Database Systems, AA           Complete Guide to DB2 Universal Database</title>
<date>1986-01-011998-04-151997-04-021998-08-15</date>
</book>

我需要列出所有借款人和借书以及图书出版日期。在查询中,它返回每个名称及其所有书籍并发布日期,但不是单独的。我需要它像:

<borrowers>
<nameOfBorrower>
<book>
    <bookTitle />
    <bookPublishedDate />
</book>
  .
  .
  .
 //another book here and so on
</nameOfBorrower>
</borrower>

所以我拥有所有的信息,我只需要为每个人迭代它,然后一次一本书,而不是该申请人的所有书籍。请帮帮我。

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

xquery version "1.0";
let $library := doc('library.xml')
for $name in distinct-values($library/library/borrowers/borrower/name)
return
  <borrower>
    <name>{$name}</name>
  {
  for $asin in $library/library/borrowers/borrower[/name = $name]/borrowed/book/@asin
  let $book :=  $library/library/items/book[@asin = $asin]
    order by $book/published
    return
    <book>
      <title>{data($book/title)}</title>
      <date>{data($book/published)}</date>
    </book>
  }
  </borrower>

不确定语法是否正确,我无法测试。