sql server 多行查询结果显示为一行

原来的SQL语句:
select CONT_NO ,CONT_VER,WPRO_NAME,CS_PRICE,WS_PRICE from CS_COST_DETAIL where FTY_ID='mk5' and CONT_NO='GWCH-14-AK084' and COST_VER=0
查询结果为:

现在需要变成这种样子.

即所有的WPRO_NAME合并到一行中的不同列中.
CS_PRIC 和WS_PRIC相加後放到第一行对应的WPRO_NAME下的列中
原本每个查询结果固定有十六行数据
望高手帮忙.谢谢!

第1个回答  推荐于2016-09-21
参考这个链接:http://blog.csdn.net/helloword4217/article/details/17202973 应该能解决的。

我正在努力看懂...............

试一下下面代码看看

select WPRO_NAME,CS_PRICE+WS_PRICE --CONT_NO ,CONT_VER 这两列我不要了

INTO #ProgrectDetail

from CS_COST_DETAIL where FTY_ID='mk5' and CONT_NO='GWCH-14-AK084' and COST_VER=0

DECLARE @sql VARCHAR(1000), @distinct_val VARCHAR(500) ;
SET @sql = 'SELECT * FROM #ProgrectDetail PIVOT(SUM(PRICE) FOR [WPRO_NAME] IN (' ;
SET @distinct_val = (SELECT STUFF(( SELECT DISTINCT ',' + [WPRO_NAME] FROM #ProgrectDetail FOR XML PATH('')), 1, 1, '')) ;
SET @sql = @sql + @distinct_val + '))' + ' p'
EXEC(@sql)本回答被提问者采纳
第2个回答  2014-06-13
select (CS_PRIC + WS_PRIC) as WPRO_NAME 
from ..
where ..

相似回答