Bonjour
svp j ai un problème avec un fichier XML structuré comme suit 9plusieurs blocs avis)
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <avis> <numeroseao>167350</numeroseao> <numero>6501-07-0922</numero> <depenses> <depense> <datedepense>2018-10-22</datedepense> <datepublicationdepense>2019-05-31</datepublicationdepense> <montantdepense>233376.880000</montantdepense> <description>Dépassement relié à des variations de quantité et/ou des modifications au contrat de construction ou de services de nature technique</description> <nomcontractant>Gervais Dubé Inc</nomcontractant> <neqcontractant>1144441871</neqcontractant> </depense> </depenses> </avis>
donc un numeroseao, numero peuvent être associé a une ou plusieurs dépenses
en executer
j ai un produit cartesion, comment l éviter svp ,
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 SELECT MY_XML.avis.query('numeroseao').value('.', 'integer') as numeroseao, MY_XML.avis.query('numero').value('.', 'varchar(50)') as numero, Nodes.depense.query('datedepense').value('.', 'DATE') as datedepense, Nodes.depense.query('datepublicationdepense').value('.', 'DATE')as datepublicationdepense, Nodes.depense.query('montantdepense').value('.', 'decimal(18,6)')as montantdepense, Nodes.depense.query('description').value('.', 'varchar(150)') as description, Nodes.depense.query('nomcontractant').value('.', 'varchar(150)')as nomcontractant, Nodes.depense.query('neqcontractant').value('.', 'varchar(150)')as neqcontractant FROM (SELECT CAST(MY_XML AS xml) FROM OPENROWSET(BULK 'C:\Users\Amal Ait Mehedine\Desktop\2019mai\Depenses_20190501_20190531.xml', SINGLE_BLOB) AS T(MY_XML)) AS T(MY_XML) CROSS APPLY MY_XML.nodes('avis') AS MY_XML(avis) CROSS APPLY MY_XML.nodes('avis/depenses/depense') AS Nodes(depense);
merci
Partager