2017-07-17 3 views
-3

Je cette requête suivantePour XML dans SQL Server - l'ajout d'éléments d'enfants

enter image description here

Retours ce Format de fichier XML

enter image description here

Comment puis-je obtenir dans ce format?

enter image description here

Aide S'il vous plaît, Code source

SELECT top 1 

    (SELECT top 1 
    count(*)AS 'number-of-accounts', 
    sum(br.cnsmr_accnt_bckt_crrnt_bal_amnt) AS 'total-value-of-account-payment', 
    '' AS 'date-of-turnover', 
    '' AS 'is-conversion-job' 
    FROM 
    cnsmr as c 
    inner join cnsmr_accnt as ca ON c.cnsmr_id = ca.cnsmr_id 
    inner join cnsmr_accnt_bckt_bal_rprtng as br on ca.cnsmr_accnt_id = br.cnsmr_accnt_id 
    FOR XML PATH('payment-import-header'), TYPE), 

    (SELECT top 1 
    br.cnsmr_accnt_bckt_crrnt_bal_amnt AS 'payment-amount', 
    '' AS 'bucket-transaction-type', 
    '' AS 'tendered-date', 
    '' AS 'entered-date', 
    '' AS 'payment-location-code', 
    '' AS 'payment-memo-code', 
    '' AS 'payment-comments', 
    '' AS 'external-reference-identifier' 

    FROM 
    cnsmr as c 
    inner join cnsmr_accnt as ca ON c.cnsmr_id = ca.cnsmr_id 
    inner join cnsmr_accnt_bckt_bal_rprtng as br on ca.cnsmr_accnt_id = br.cnsmr_accnt_id 

    FOR XML PATH('consumer-payment'), ROOT('consumer-payment-import'),TYPE) 

FOR XML RAW (''), ROOT ('consumer-payment-import-job'), ELEMENTS XSINIL; 
+0

Copiez/collez votre code * dans votre question *. Ne * pas * télécharger des photos de code. Nous ne pouvons rien faire avec une image. – Siyual

Répondre

1

S'il vous plaît étiquette avec les SGBDR réelle (produit et version). Syntaxe et images sur SQL-server ...

S'il vous plaît lire How to ask a good SQL question et How to create a MCVE

Sans données de test, je ne peux pas tester, mais ce qui suit devrait aider ...

SELECT top 1 

    (SELECT top 1 
    count(*)AS 'number-of-accounts', 
    sum(br.cnsmr_accnt_bckt_crrnt_bal_amnt) AS 'total-value-of-account-payment', 
    '' AS 'date-of-turnover', 
    '' AS 'is-conversion-job' 
    FROM 
    cnsmr as c 
    inner join cnsmr_accnt as ca ON c.cnsmr_id = ca.cnsmr_id 
    inner join cnsmr_accnt_bckt_bal_rprtng as br on ca.cnsmr_accnt_id = br.cnsmr_accnt_id 
    FOR XML PATH('payment-import-header'), TYPE), 

    (SELECT top 1 
    br.cnsmr_accnt_bckt_crrnt_bal_amnt AS 'payment-amount', 
    '' AS 'bucket-transaction-type', 
    '' AS 'tendered-date', 
    '' AS 'entered-date', 
    '' AS 'payment-location-code', 
    '' AS 'payment-memo-code', 
    '' AS 'payment-comments', 
    '' AS 'external-reference-identifier' 
    ,(
     SELECT 'SomeValue' AS Something 
     FOR XML PATH('consumer-identifier'),TYPE 
    ) 
    FROM 
    cnsmr as c 
    inner join cnsmr_accnt as ca ON c.cnsmr_id = ca.cnsmr_id 
    inner join cnsmr_accnt_bckt_bal_rprtng as br on ca.cnsmr_accnt_id = br.cnsmr_accnt_id 

    FOR XML PATH('consumer-payment'), ROOT('consumer-payment-import'),TYPE) AS [consumer-payment-imports] 

FOR XML RAW (''), ROOT ('consumer-payment-import-job'), ELEMENTS XSINIL; 

Le AS [consumer-payment-imports] sera Envelopper le nœud interne entier dans un nœud supplémentaire.

La deuxième addition est une sous-sélection supplémentaire pour ajouter votre référence client dans le sous-sélection interne. Si ce n'est pas 1:n il pourrait être suffisant pour utiliser

'SomeValue' AS [consumer-identifier/Something] 

Cela ajoutera la valeur SomeValue dans un élément imbriqué ...