SQL Server mode EXPLICIT

Je suis à l'aide de SQL Server 2008 et je suis en train de produire un xml personnalisé à l'aide de EXPLICIT mode avec FOR XML.

J'ai l'un de beaucoup de rapport ayant requête suivante

select  
    p.personid, p.firstname, a.P_City 
from 
    tblPeople p with (nolock) 
left outer join 
    tblAddresses a with (nolock) on p.personid = a.personid 
where 
    p.personid = 120773

SQL Server mode EXPLICIT

Je veux personne en tant que parent et l'adresse de l'enfant peuvent être multiples parce que les gens à l'adresse en avoir un pour beaucoup de relation.

J'ai écrit la requête suivante

 select 1 as TAG,
        null as parent, 
        p.personid as [person!1!personid],
        p.FirstName as [person!1!firstname],

        null as [addr!2!] 
        from tblPeople p with (nolock) where p.PersonID in (120773,117396)

        union all 

select 2,1, 
        p.PersonID, p.FirstName, a.P_City from tblAddresses a with(nolock), tblPeople p 
        where p.PersonID=a.PersonID and p.PersonID in (120773,117396)

        for xml explicit

De sortie comme suit, il est cassé xml avec personne imbriquée il ya quelque chose de mal avec mon code pour vous.

<person personid="117396" firstname="David"/>
    <person personid="120773" firstname="Doyle">
        <addr>Mount Rainier</addr>
        <addr>Annapolis</addr>
</person>

Peut quelques un s'il vous plaît, aidez-moi !!!

InformationsquelleAutor d-man | 2012-10-04