Sql server 2008 在SQL中组合多行

Sql server 2008 在SQL中组合多行,sql-server-2008,Sql Server 2008,我希望SP值显示在Sprint_名称不为NULL的同一行中。 所以我希望我的结果是这样的 SubsID SUMMARY SP Sprint_Name cfname SourceID 10547 AA 6.0 NULL Points 10543 10547 AA NULL GOE 10/03 Sprint 10543 10547 AA

我希望SP值显示在Sprint_名称不为NULL的同一行中。 所以我希望我的结果是这样的

SubsID   SUMMARY        SP    Sprint_Name    cfname     SourceID
10547      AA           6.0   NULL           Points     10543
10547     AA            NULL  GOE 10/03     Sprint      10543
10547     AA            NULL  GO 10/17      Sprint      10543
这是我的问题

SubsID   SUMMARY        SP    Sprint_Name    cfname     SourceID
    10547     AA          6.0 GOE 10/03     Sprint      10543
    10547     AA          6.0  GO 10/17     Sprint      10543
我面临的问题是SP和Sprint_名称来自不同的表。 我曾想过使用Pivot函数,但没用。 下面是使用Pivot的查询

Select ji.ID as SubsID, ji.SUMMARY,  it.pname as IssueType, 
     cfv.NUMBERVALUE as SP, sp.NAME as Sprint_Name,
     cf.cfname, ISNULL(il.SOURCE,ji.ID) as SourceID
     from
    jiraissue as ji
    inner join customfieldvalue as cfv on cfv.ISSUE = ji.ID
    left outer join issuelink as il on il.DESTINATION = ji.ID or il.SOURCE = ji.ID 
    left outer join customfieldoption as cfo on cast (cfo.ID as varchar(1000)) = cfv.STRINGVALUE
    left outer join AO_60DB71_SPRINT as sp on cast (sp.ID as varchar(1000)) = cfv.STRINGVALUE 
    left outer join customfield as cf on cf.ID = cfv.CUSTOMFIELD 

使用常规查询获取所有非空SprintName,并使用子选择获取SP

伪代码:

SubsID  SUMMARY Sprint_Name SourceID    Story Points    
10547   AA      NULL        10543            6.0    
10547   AA      GO 10/17    10543           NULL
10547   AA      GOE 10/03   10543           NULL

在这两种情况下,将“MyTable”替换为获取所需列所需的任何联接集合。

如果有多行具有非空SP值,该怎么办?我将使用where子句限制该操作。对于一个独特的补贴,只有一行的SP值为非空非常感谢,你是一个救生员,我很抱歉,但我不能投票给你的答案,因为我没有足够的声誉。
SubsID  SUMMARY Sprint_Name SourceID    Story Points    
10547   AA      NULL        10543            6.0    
10547   AA      GO 10/17    10543           NULL
10547   AA      GOE 10/03   10543           NULL
SELECT SubsID, SprintName, SomeOtherColumns, 
  (SELECT TOP 1 SP FROM MyTable t2 WHERE t2.SubsID=t1.SubsID AND SP IS NOT NULL) AS StoryPoints
FROM MyTable t1
WHERE SprintName IS NOT NULL