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