[英]SQL Server - For XML Path (nested elements, multiple records)
Struggling to write query which can generate nested elements in XML. 努力编写可以在XML中生成嵌套元素的查询。 Can anyone help 谁能帮忙
INPUT: 输入:
SELECT EmpName AS [Name],
EmpSalary AS [WageAmount],
Add1 AS [Address1],
Add2 AS [Address2],
Mobile AS [Mobile]
FROM Employee
FOR XML PATH
TABLE DATA (2 records exist for emoployee with different addresses) 表数据(针对具有不同地址的员工有2条记录)
Conrad Jagger 12345 London UK 9191919191
Conrad Jagger 12345 Coventry UK 9191919191
Expected OUTPUT: (this has additional info as a nested element) 预期的输出:(此信息具有嵌套元素的附加信息)
<Employee>
<Name>Conrad</Name>
<WageAmount>10000</WageAmount>
<AdditionalInfo>
<PersonAddress>
<Address1>London</Address1>
<Address2>UK</Address2>
<Mobile>919191919191</Mobile>
</PersonAddress>
<PersonAddress>
<Address1>Coventry</Address1> --->Second address
<Address2>UK</Address2>
<Mobile>919191919191</Mobile>
</PersonAddress>
</AdditionalInfo>
</Employee>
This query works if you have single record coming, i don't know how to make this work for multiple records which im getting 如果您有一条记录,则此查询有效,我不知道如何针对多条记录使该记录有效
SELECT EmpName AS [Name],
EmpSalary AS [WageAmount],
Add1 AS [AdditionalInfo/Address1],
Add2 AS [AdditionalInfo/Address2],
Mobile AS [AdditionalInfo/Mobile]
FROM Employee
FOR XML PATH ('Employee')
I hope there is an uniqe id column in the table. 我希望表中有一个唯一ID列。 As you haven't provided that column, i am joining on EmpName column for instance. 因为您没有提供该列,所以我例如加入了EmpName列。
Try this 尝试这个
SELECT EmpName AS [Name],
EmpSalary AS [WageAmount],
(SELECT
Add1 AS [PersonAddress/Address1],
Add2 AS [PersonAddress/Address2],
Mobile AS [PersonAddress/Mobile] FROM Employee B WHERE EmpName = A.EmpName
FOR XML PATH('AdditionalInfo'),type)
FROM Employee A
GROUP BY EmpName,EmpSalary
FOR XML PATH ('Employee')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.