CREATE TABLE [dbo].[Project](
[ProjectId] [int] NOT NULL,
[ProjectName] [nvarchar](255) ,
[ParentProjectId] [int] null,
[ReleaseId] [int]
)
insert into Project values (1, 'Project 1', null, 1)
insert into Project values (2, 'Project 2', null, 1)
insert into Project values (3, 'project 3', 1, 1)
insert into Project values (4, 'project 4', 2, 1)
CREATE TABLE [dbo].[Release](
[ReleaseId] [int] ,
[Name] [nvarchar](255) ,
[ReportingPriority] [int]
)
insert into Release values (1, 'march release', 1)
insert into Release values (2, 'may release', 2)
insert into Release values (3, 'june release', 3)
CREATE TABLE [dbo].[ReleaseSchedule](
[ReleaseScheduleID] [int] ,
[ReleaseID] [int],
[EndDate] [datetime]
)
insert into ReleaseSchedule values (1, 1, '3/1/2010')
insert into ReleaseSchedule values (2, 2, '5/1/2010')
insert into ReleaseSchedule values (3, 3, '6/1/2010')
这是我拥有的SQL数据。从这个我需要一个分层XML类似于此:从我的SQL中获取XML SQL Server 2005数据
<Release Heading="releaseName" id="releaseID" EndDate="date">
<Project Heading="projName" id="projectID">
<SubProject Heading="subprojName" id="projectID"/>
<SubProject Heading="subprojName" id="projectID"/>
</Project>
<Project Heading="releaseName" id="projectID">
<SubProject Heading="subprojName" id="projectID"/>
</Project>
</Release>
基本逻辑是,每个版本都有一些项目给它,和项目可以分项目进行嵌套(从项目表的自我引用数据。)
(注意:endDate
来自两个释放表之间的连接)
ahh是的,我正在尝试很多事情,并发现当我加入一个表时,连接表的选定字段被作为一个子XML节点...从来没有想过使用子查询...如果它工作就像我认为它应该然后im金黄和爱的解决方案...关闭现在测试 – kacalapy 2010-11-11 19:26:50
我注意到的一个问题是,没有项目分配给它时,sql是省略版本,我需要释放总是像左外加入。 – kacalapy 2010-11-11 19:38:51
也释放节点被欺骗多次? – kacalapy 2010-11-11 19:47:58