.net – 用于生成xml输出的SQL查询

我有这些表

表格1
tbl1_site
[facilityId]
[名称]

表2
tbl2_applicant
[PVID]
[facilityId]
[NPI]
[名字]

FK连接密钥:tbl1_site.facilityId = tbl2_applicant.facilityId

表3
tbl3_abstraction
[PVID]
[patientnumber]
[diabetesdiagnosis]
[出生日期]

FK连接键:tbl2_applicant.pvId = tbl3_abstraction.pvId

我有问题创建一个SQL查询来重现此xml输出.

谢谢

<account>
    <Metadata />
    <practice-sites>
        <practice-site>
            <Metadata>
                <data-element id="name">
                    <value>My Own Diabetes Medical Center</value>
                </data-element>
            </Metadata>
            <applicants>
                <Metadata />
                <applicant>
                    <Metadata>
                        <data-element id="npi">
                            <value>1234567890</value>
                        </data-element>
                        <data-element id="firstname">
                            <value>Joseph</value>
                        </data-element>
                    </Metadata>
                    <clinical-abstractions>                           
                        <clinical-abstraction>
                            <data-element id="diabetesdiagnosis">
                                <value>Backward</value>
                            </data-element>
                            <data-element id="dateofbirth">
                                <value>02/01/2009</value>
                            </data-element>
                            <data-element id="patientnumber">
                                <value>1</value>
                            </data-element>
                        </clinical-abstraction>
                    </clinical-abstractions>
                </applicant>
            </applicants>
        </practice-site>
    </practice-sites>
</account>
你真的需要所有这些标签吗?
我的意思是“元数据”和“数据元素”

尝试此查询,它会显示您需要的格式的数据:

select  t1.name as PracticeSite,(SELECT t2.npi as NPI,t2.firstname,(SELECT t3.patientnumber,t3.diabetesdiagnosis,t3.dateofbirth
                        FROM tbl3_abstraction t3
                        WHERE t3.pvId=t2.pvId
                        FOR XML PATH('clinical-abstraction'),TYPE
                        ) as 'clinical-abstractions'
                FROM tbl2_applicant t2
                WHERE t1.[facilityId]=t2.[facilityId]
                FOR XML PATH('Applicant'),TYPE
        ) AS 'Applicants'
from tbl1_site t1
FOR XML path('PracticeSites'),root('account'),ELEMENTS;

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念