Tenho uma sql
tabela da qual estou tentando obter resultados com base em alguns critérios como:
Da tabela acima, quero criar xml
, que deve retornar o resultado como:
Aqui está a consulta que escrevi para o
DECLARE
@ResourceName VARCHAR(50)
, @XMLResult XML = NULL
, @xMSG XML = NULL
SET @ResourceName = 'Property'
SET @xmsg = '<Results ReplyCode="0" ReplyText="Operation successful"><Result></Result></Results>'
SET @xMSG =
(
SELECT 0 AS [@ReplyCode]
, 'Operation Successfull' AS [@ReplyText]
, @ResourceName AS ResourceName
, ( SELECT *
FROM (
SELECT SystemName
, DBName
, ShortName
, ClassSortOrder
, Pcode
, TabNumber
, ColumnNumber
, RowNumber
FROM ScreenOrder
) SearchFieldsList
ORDER BY ClassSortOrder
FOR XML PATH('Field'), TYPE
)
FOR
XML PATH('Results')
)
SET @XMLResult = @xMSG
SELECT @XMLResult
Mas esta consulta não retorna o resultado esperado. Esta consulta retorna o resultado como:
Estou tentando colocar todos esses campos como classe sábia em xml. Onde preciso modificar a consulta?
Use
FOR XML PATH
com subconsultas para obter o nível apropriado de aninhamento, algo assim:Não está 100% claro, pois seus dados de amostra são diferentes do XML de amostra, mas esperamos que isso lhe dê um ponto de partida.