我需要的XML進行結構是這樣的:對於具有兩個父節點和多個子節點的XML結構?
<Loans>
<Loan>
<GUID></GUID>
<LoanFolder></LoanFolder>
<LastModified></LastModified>
<TotalMonthlyPayment></TotalMonthlyPayment>
<AgentCompanyName></AgentCompanyName>
<LoanSecondaryStatusDates>
<LoanSecondaryStatus>
<StatusName>Name</StatusName>
<StatusDate>Date</StatusDate>
</LoanSecondaryStatus>
<LoanSecondaryStatus>
<StatusName>Name</StatusName>
<StatusDate>Date</StatusDate>
</LoanSecondaryStatus>
</LoanSecondaryStatusDates>
</Loan>
</Loans>
我有一個FOR XML查詢的結構是這樣的:
SELECT
[GUID]
,[LOANFOLDER]
,[LASTMODIFIED]
,[LASTIMPORTED]
,[TotalMonthlyPayment]
,[AgentCompanyName],
(
SELECT
'Borrower Docs Sent/Req' as 'StatusName',
CASE WHEN t.BorrowerDocsSent IS NOT NULL THEN t.BorrowerDocsSent ELSE '' END as 'StatusDate'
FROM Encompass_loanData as t
WHERE t.[GUID] = E.[GUID]
FOR XML PATH('LoanSecondaryStatus'), TYPE
),
(
SELECT
t.BorrowerCity as 'StatusName',
t.[GUID] as 'StatusDate'
FROM Encompass_loanData as t
WHERE t.[GUID] = E.[GUID]
FOR XML PATH('LoanSecondaryStatus'), TYPE
)
From Encompass_loanData E
WHERE [LASTMODIFIED] >= '20160121'
FOR XML PATH ('Loan'), type, root('Loans')
這讓我接近,但缺少頂「 LoanSecondaryStatusDates「根節點。我如何添加這個根節點? http://sqlfiddle.com/#!6/d672a/2/0
注:我能使用這個XSL來添加節點:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="Loan">
<xsl:copy>
<xsl:apply-templates select="@*|node()[not(self::LoanSecondaryStatus)]"/>
<LoanSecondaryStatusDates>
<xsl:apply-templates select="LoanSecondaryStatus"/>
</LoanSecondaryStatusDates>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
您能提供http://sqlfiddle.com/中的示例數據嗎?僅供參考,[提出一個好的結構化查詢語言(SQL)問題](http://meta.stackoverflow.com/a/271056/2998271) – har07
在這裏,你去 - 希望這有助於。 http://sqlfiddle.com/#!6/d672a/2/0 – dc922
嗯,我沒有弄清楚如何用FOR XML做到這一點,但我能夠應用XSL。 – dc922