IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XQUERY/SGBD XML Discussion :

group by avec XQuery [XQUERY]


Sujet :

XQUERY/SGBD XML

  1. #1
    Membre habitué
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2010
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 212
    Points : 184
    Points
    184
    Par défaut group by avec XQuery
    Bonsoir,
    soit le doc XML:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    <bib>
        <book year="1994">
            <title>TCP/IP Illustrated</title>
            <author><last>Stevens</last><first>W.</first></author>
            <publisher>Addison-Wesley</publisher>
            <price>65.95</price>
        </book>
         <book year="1992">
            <title>Advanced Programming in the Unix environment</title>
            <author><last>Stevens</last><first>W.</first></author>
            <publisher>Addison-Wesley</publisher>
            <price>65.95</price>
        </book>
         <book year="2000">
            <title>Data on the Web</title>
            <author><last>Abiteboul</last><first>Serge</first></author>
            <author><last>Buneman</last><first>Peter</first></author>
            <author><last>Suciu</last><first>Dan</first></author>
            <publisher>Morgan Kaufmann Publishers</publisher>
            <price>39.95</price>
        </book>
         <book year="1999">
            <title>The Economics of Technology and Content for Digital TV</title>
            <editor>
                   <last>Gerbarg</last><first>Darcy</first>
                    <affiliation>CITI</affiliation>
            </editor>
            <publisher>Kluwer Academic Publishers</publisher>
            <price>129.95</price>
        </book>
     </bib>
    en utilisant une requête XQuery, j'aimerais obtenir les livres écrits par chaque auteur au format:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <listings>
    <result>
    <author> Stevens W.</author>
    <title> TCP/IP Illustrated </title>
    <title> Advanced Programming in the Unix environment </title>
    </result></listings>
    merci d'avance

  2. #2
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Qu'est-ce que vous avez essayez?

  3. #3
    Membre habitué
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2010
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 212
    Points : 184
    Points
    184
    Par défaut
    Citation Envoyé par tsuji Voir le message
    Qu'est-ce que vous avez essayez?
    voila mon éssai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <listings>
    {for $author in distinct-values(doc("biblio.xml")//author)
    return 
    <result>
    <author>{$author}</author>
    {for $book in doc("biblio.xml")//book 
    where $book/author=$author
    return $book/title
    }
    </result> 
    }
    </listings>
    cette requête donne le résultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <listings>
    <result><author>StevensW.</author><title>TCP/IP Illustrated</title><title>Advanced Programming in the Unix environment</title></result>
    <result><author>AbiteboulSerge</author><title>Data on the Web</title></result>
    <result><author>BunemanPeter</author><title>Data on the Web</title></result>
    <result><author>SuciuDan</author><title>Data on the Web</title></result>
    </listings>
    remarquez: pas d'espace entre le nom et prénom.

  4. #4
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Est-ce que les espaces devant et après les title sont importants aussi? En tout cas, je les mets malgré tout si vous voulez. Et l'espace devant le nom?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    declare variable $doc:=doc("biblio.xml");
    <listings>
    {
    for $author in distinct-values($doc/bib/book/author/concat(' ',last,' ',first))
    return 
    <result>
    {
    <author>{$author}</author>,
    for $book in $doc/bib/book 
    where $book/author/concat(' ',last,' ',first)=$author
    return 
    <title>{concat(' ',$book/title/text(),' ')}</title>
    }
    </result> 
    }
    </listings>
    p.s Attention à la virgule après la balise author, c'est important aussi.

  5. #5
    Membre habitué
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2010
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 212
    Points : 184
    Points
    184
    Par défaut
    Citation Envoyé par tsuji Voir le message
    Est-ce que les espaces devant et après les title sont importants aussi? En tout cas, je les mets malgré tout si vous voulez. Et l'espace devant le nom?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    declare variable $doc:=doc("biblio.xml");
    <listings>
    {
    for $author in distinct-values($doc/bib/book/author/concat(' ',last,' ',first))
    return 
    <result>
    {
    <author>{$author}</author>,
    for $book in $doc/bib/book 
    where $book/author/concat(' ',last,' ',first)=$author
    return 
    <title>{concat(' ',$book/title/text(),' ')}</title>
    }
    </result> 
    }
    </listings>
    p.s Attention à la virgule après la balise author, c'est important aussi.
    merci beaucoup, çà marche très bien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/12/2006, 18h05
  2. [CRXI] Ordre different du group by avec gestion hierarchique
    Par FO dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 24/08/2006, 11h56
  3. [Oracle 9i] GROUP BY avec jointure.
    Par requinc dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/04/2006, 12h29
  4. [Access] Clause GROUP BY avec une date
    Par Kanie dans le forum Langage SQL
    Réponses: 4
    Dernier message: 10/04/2006, 19h58
  5. Groupe By avec jointure
    Par batoubat dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/12/2005, 14h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo