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

SQL Oracle Discussion :

XML: Requete pour sommer


Sujet :

SQL Oracle

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2007
    Messages : 37
    Par défaut XML: Requete pour sommer
    Bonjour,

    j'ai une colonne "XML" et je souhaiterais sommer pour cette cellule les éléments ayant le XPath suivant: /a/b/@montant.

    Par exemple, la cellule "XML" peut valoir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <a>
       <b montant="12">
       <b montant="24">
    </a>
    La requête serait du genre: "SELECT ?????(XML) FROM MATABLE;"
    => Ainsi pour la ligne d'exemple on aurait somme = 36.


    Quelqu'un sait t'il le faire ?

    Merci d'avance pour votre aide !

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Vous devez d'abord extraire les valeurs et ensuite sommer ne pose aucune souci. Pour des exemple d'extraction des valeurs à partir des XML faite une recherche sur ce site.

  3. #3
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    tu peux aussi employer la fonction sum dans xquery !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    create table lsc_t of xmltype;
    insert into lsc_t values(xmltype('<a><b montant="12"/><b montant="24"/></a>'));
    insert into lsc_t values(xmltype('<a><b montant="1"/><b montant="10"/></a>'));
    commit;
    select value(t).getstringval(),xmlquery('sum(/a/b/@montant)' 
      passing by value value(t) returning content).getnumberval() total 
    from lsc_t t;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    VALUE(T).GETSTRINGVAL()                         TOTAL
    ------------------------------------------ ----------
    <a><b montant="12"/><b montant="24"/></a>          36
    <a><b montant="1"/><b montant="10"/></a>           11

Discussions similaires

  1. requete sql pour sommer des colonnes
    Par debutsas dans le forum SAS Base
    Réponses: 109
    Dernier message: 22/04/2011, 12h26
  2. [XML] Outil pour requêter (filtrer) un document xml
    Par aperrin dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 23/08/2006, 09h03
  3. Requete pour un débutant
    Par sqlnoob dans le forum Langage SQL
    Réponses: 3
    Dernier message: 20/05/2005, 08h55
  4. requete pour reccuperer une parti d'un resultat
    Par ViBy dans le forum Langage SQL
    Réponses: 6
    Dernier message: 03/09/2004, 09h33
  5. requete pour avoir CONTENU procedures stockees
    Par bmayer dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 11/02/2004, 13h20

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