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

Développement SQL Server Discussion :

XQuery - Loop


Sujet :

Développement SQL Server

  1. #1
    Membre Expert

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Par défaut XQuery - Loop
    Bonjour,

    J'ai un petit soucis avec XQuery:

    Structure du XML:
    Un status report peut contenir un ou plusieurs "work in progress",
    Dans chaque "work in progress", il y a un champ statement.

    Objectif:
    Retourner 1 ligne statement pour chaque "work in progress"

    Le bout de code ci-dessous me retourne une concatenation de ces statements.
    Avez vous une idée de comment les splitter ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    WITH XMLNAMESPACES 
    ('http://schemas.microsoft.com/office/infopath/2003/myXSD/2009-05-18T09:02:11' as my,
     'http://schemas.microsoft.com/office/infopath/2003/PRSXSD/2009-04-23' as ns1)
    select 
    Status_report.query(
    	'for $i in /ns1:StatusReport/ns1:content/my:feedback/my:feedback_work_in_progress,
    		 $j in $i/my:wip_statement
    		return 
    				string ($j)'
    )
     from  dbo.StatusReport
    where statusreport_id = 4
    Merci d'avance pour votre aide,
    Dje
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Bonjour,

    Vous pouvez utiliser les fonctions node() et value() pour cela.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    WITH XMLNAMESPACES 
    ('http://schemas.microsoft.com/office/infopath/2003/myXSD/2009-05-18T09:02:11' AS my,
     'http://schemas.microsoft.com/office/infopath/2003/PRSXSD/2009-04-23' AS ns1)
    SELECT R.i.value('(my:wip_statement)[1]','VARCHAR(50)')
    FROM dbo.StatusReport
    CROSS APPLY Status_report.nodes('/ns1:StatusReport/ns1:content/my:feedback/my:feedback_work_in_progress') R(i)
    ++

  3. #3
    Membre Expert

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Par défaut
    Ca fonctionne nickel, un grand merci !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/04/2005, 02h43
  2. loop sur tableau associatif
    Par Plawi dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 28/02/2005, 11h29
  3. [Debutant] Erreur "Unhandled event loop exception"
    Par pilz dans le forum Eclipse Platform
    Réponses: 14
    Dernier message: 08/12/2004, 15h19
  4. Principe de l'instruction LOOP
    Par mathk dans le forum Assembleur
    Réponses: 25
    Dernier message: 16/05/2004, 11h08
  5. [Sybase] Select dans une select loop en C
    Par Claudio dans le forum Sybase
    Réponses: 2
    Dernier message: 29/04/2003, 18h06

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