Sql 自联接中的多行
我有这种格式的表格Sql 自联接中的多行,sql,Sql,我有这种格式的表格 Id QId ResourceId ModuleId SubProjId Comments 1 1 1 1 2 ffdg 1 1 2 2 1 1 2 dfgfdg 1 1 3 3 1 1 2 hgjhg 1 1 4 1 2 1 2 tryty 1 0 5 5 1 1 2 sdf 1 1 6 5 2 1 2 ghg
Id QId ResourceId ModuleId SubProjId Comments
1 1 1 1 2 ffdg 1 1
2 2 1 1 2 dfgfdg 1 1
3 3 1 1 2 hgjhg 1 1
4 1 2 1 2 tryty 1 0
5 5 1 1 2 sdf 1 1
6 5 2 1 2 ghgfh 1 0
7 7 2 1 2 tytry 1 0
8 3 2 1 2 rytr 1 0
我希望能有这样的结果
qid ResourceId Comments ResourceId Comments
1 1 ffdg 2 tryty
3 1 hgjhg 2 rytr
我试过了
select distinct A.qid,A.ResourceId,A.Comments,B.ResourceId,b.Comments
from dbo.#temp A inner join #temp B on A.QId=B.QId and A.[ModuleId]=B.[ModuleId] and a.[SubProjId]=b.[SubProjId]
但是没有找到任何运气,请帮助您要将垂直数据转换为水平数据。因此,您需要创建一个透视表。你可以在这里找到更多细节
我希望这篇文章能对你有所帮助。解释得出结果的依据。@Nakul:-基本上A.qid、A.ResourceId和[ModuleId]是常见的。那么为什么ResourceId和Comments列在结果中存在两次?Rashmi Kant..从您发布的结果来看,我觉得您想要将垂直数据转换为水平数据,您可以使用透视表来完成。请转到pivot表引用链接,看看是否可以帮助您。从我的查询结果来看,它也会给出一些我不想要的额外行