2017-02-13 5 views
1

xml出力を生成する次のコードがあります。ssms内の値は、xmlタグを生成しました

select 
    [FirstName] as 'SubscriberName/FirstName', 
    [Middle] as 'SubscriberName/MiddleName', 
    LastName as 'SubscriberName/LastName', 
    '123 fake street' as 'Address/Address1' 
from chp_work_area.dbo.Students1099hc 
FOR XML PATH('SubscriberInformation'), ROOT('Test') 

この出力は、以下のxmlであり、正確です。

<Test> 
    <SubscriberInformation> 
    <SubscriberName> 
     <FirstName>BOB</FirstName> 
     <MiddleName>G</MiddleName> 
     <LastName>CHOI</LastName> 
    </SubscriberName> 
    <Address> 
     <Address1>123 fake street</Address1> 
    </Address> 
    </SubscriberInformation> 
    <SubscriberInformation> 
    <SubscriberName> 
     <FirstName>MOLLY</FirstName> 
     <MiddleName>G</MiddleName> 
     <LastName>MORTY</LastName> 
    </SubscriberName> 
    <Address> 
     <Address1>123 fake street</Address1> 
    </Address> 
    </SubscriberInformation> 
</Test> 

私が必要とする最後の部分は、加入者情報がタグ内にあるレコードをリストするためのもので、次のように読み込まれます。

<Test> 
    <SubscriberInformation docID="Person001"> 
    <SubscriberName> 
     <FirstName>BOB</FirstName> 
     <MiddleName>G</MiddleName> 
     <LastName>CHOI</LastName> 
    </SubscriberName> 
    <Address> 
     <Address1>123 fake street</Address1> 
    </Address> 
    </SubscriberInformation> 
    <SubscriberInformation docID="Person002"> 
    <SubscriberName> 
     <FirstName>MOLLY</FirstName> 
     <MiddleName>G</MiddleName> 
     <LastName>MORTY</LastName> 
    </SubscriberName> 
    <Address> 
     <Address1>123 fake street</Address1> 
    </Address> 
    </SubscriberInformation> 
</Test> 
+0

使用してみてください「@docID」別名として...あなたはそれにいくつかの作業を行う必要があるでしょう。 [FirstName]を "@docID"と選択してテストすれば、私の意図がわかります。 – manderson

答えて

0

このような何か...

SELECT ROW_NUMBER() OVER(ORDER BY [FirstName],[Middle],[LastName] ASC) AS "@docID", 
    [FirstName] as 'SubscriberName/FirstName', 
    [Middle] as 'SubscriberName/MiddleName', 
    LastName as 'SubscriberName/LastName', 
    '123 fake street' as 'Address/Address1' 
from chp_work_area.dbo.Students1099hc 
FOR XML PATH('SubscriberInformation'), ROOT('Test') 
+0

"Person001"、 "Person002"フィールドが何であるかは言わなかったので、そのdocIDフィールドをそれに置き換えてください。 – manderson

+0

person001フィールドはありません。私は増分値を求めただけです。 – lefeal

関連する問題