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 :

Doublons sur Exist [XQUERY]


Sujet :

XQUERY/SGBD XML

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    juin 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : juin 2013
    Messages : 53
    Points : 30
    Points
    30
    Par défaut Doublons sur Exist
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <maliste>
    {
    for $e in doc("q2.xml")//cours
     
    return
           <cours sigle="{$e/@sigle}">
    {
            sum(doc("q2.xml")//cours[@sigle eq $e/@sigle]/@note) div 
             count(doc("q2.xml")//cours[@sigle eq $e/@sigle])
          }
          </cours>
     }
    </maliste>
    resultat est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <maliste>
        <cours sigle="INF8430">85</cours>
        <cours sigle="INF1030">76.66666666666667</cours>
        <cours sigle="INF1230">81.5</cours>
        <cours sigle="INF8430">85</cours>
        <cours sigle="INF1030">76.66666666666667</cours>
        <cours sigle="INF1230">81.5</cours>
        <cours sigle="INF9430">39</cours>
        <cours sigle="INF1030">76.66666666666667</cours>
        <cours sigle="INF1230">81.5</cours>
        <cours sigle="INF8430">85</cours>
        <cours sigle="INF1230">81.5</cours>
    </maliste>
    quand j'utilise distinct-values j'ai une erreur
    An exception occurred during query execution: exerr:ERROR exerr:ERROR cannot convert xs:untypedAtomic('') to a node set
    je travaille avec exist sa fais plu sur heure que je suis sur sa i je pige pas merci de votre aide .

  2. #2
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    mars 2004
    Messages
    2 271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2004
    Messages : 2 271
    Points : 4 726
    Points
    4 726
    Par défaut
    Tu peux essayer en mettant ton process actuel dans une variable et en faisant un distinct-values sur le cette variable :

    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
    <maliste>
    {
    	let $cours := doc("q2.xml")//cours
    	let $processed_cours :=
    		for $e in $cours
    		return
    			<cours sigle="{$e/@sigle}">
    				{
    					sum($cours[@sigle eq $e/@sigle]/@note) div count($cours[@sigle eq $e/@sigle])
    				}
    			</cours>
    	for $distinct_value in distinct-values($processed_cours/text())
    		return
    			<cours sigle="{$processed_cours[text() = $distinct_value][1]/@sigle}">
    				{
    					$distinct_value
    				}
    			</cours>
    }
    </maliste>
    Si ça ne compile pas à cause de la syntaxe, je te laisse le soin de corriger, j'ai très peu fait de XQuery et jamais dans le cadre d'eXist.

  3. #3
    Membre émérite Avatar de tsuji
    Inscrit en
    octobre 2011
    Messages
    1 498
    Détails du profil
    Informations forums :
    Inscription : octobre 2011
    Messages : 1 498
    Points : 2 626
    Points
    2 626
    Par défaut
    quand j'utilise distinct-values j'ai une erreur

    Citation:
    An exception occurred during query execution: exerr:ERROR exerr:ERROR cannot convert xs:untypedAtomic('') to a node set
    Oui, mais comment vous utilisez distinct-values?!

    Voici une autre réalization possible.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <maliste>
    {
    let $doc:=doc("q2.xml")
    let $dv:=distinct-values($doc//cours/@sigle)
    for $v in $dv
        let $note:=sum($doc//cours[@sigle=$v]/@note)
        let $count:=count($doc//cours[@sigle=$v])
        return
        <cours sigle="{$v}">{$note div $count}</cours>
    }
    </maliste>

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    juin 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : juin 2013
    Messages : 53
    Points : 30
    Points
    30
    Par défaut problème résolu Merci
    Un grand merci a vous deux j'ai pas pensais d'utilisiez distinct-values de cette façon, les 2 programme fonctionne, problème résolu Merci

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

Discussions similaires

  1. Doublons sur requête
    Par NoBru dans le forum Access
    Réponses: 9
    Dernier message: 18/03/2006, 07h00
  2. Trouver doublons sur feuille excel
    Par taku dans le forum Langage
    Réponses: 6
    Dernier message: 27/09/2005, 11h14
  3. Réponses: 8
    Dernier message: 13/09/2005, 21h05
  4. [SQL/access] Doublon sur un champ
    Par kor dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/01/2005, 11h21
  5. Réponses: 2
    Dernier message: 19/08/2003, 18h04

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