Sql server 2008 在SQL中组合多行
我希望SP值显示在Sprint_名称不为NULL的同一行中。 所以我希望我的结果是这样的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
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