日期:2014-05-19  浏览次数:20520 次

也是一个行转列的问题!参照历史问题没能解决!请求帮助!
商品ID 商品名 报价公司 第1报价 第2报价 第3报价
13 XXX A公司 0.5 0.8 0.9
13 XXX B公司 0.5 0.6 0.8
13 XXX C公司 0.5 0.6 0.9
13 XXX D公司 0.8 0.6 0.8
14 YYY A公司 1.1 1.4 1.6
14 YYY B公司 1.5 1.0 1.8
14 YYY C公司 1.5 1.6 1.3
14 YYY D公司 1.3 1.1 1.8


转成如下格式:

商品ID 商品名 报价公司A第1价 报价公司A第2价 报价公司A第3价 报价公司B第1价 报价公司B第2价 报价公司B第3价   ....
13 xxx 0.5 0.8 0.9 0.5 0.6 0.8
14 YYY 1.1 1.4 1.6 1.5 1.0 1.8

报价公司未知数量


谢谢!


------解决方案--------------------
declare @sql varchar(8000)
set @sql= ' '

select
@sql=@sql
+ ',[ '+报价公司+ '第1价]=max(case 报价公司 when ' ' '+报价公司+ ' ' ' then 第1报价 end) '
+ ',[ '+报价公司+ '第2价]=max(case 报价公司 when ' ' '+报价公司+ ' ' ' then 第2报价 end) '
+ ',[ '+报价公司+ '第3价]=max(case 报价公司 when ' ' '+报价公司+ ' ' ' then 第3报价 end) '
from 表名 group by 报价公司

set @sql= 'select 商品ID,商品名 '+@sql+ ' from 表名 group by 商品ID,商品名 '

exec(@sql)