100 分求一条 SQL 查询语句 (100分)

  • 主题发起人 主题发起人 PENGS
  • 开始时间 开始时间
我也有类似的问题:
原为
1 A
1 B
希望改为:
1 A B
 
还没有结贴子阿 太久了!
 
/*
名称 prod_name ,
规格 spec,
价格 price
表名 table_name
*/

declare @col_str nvarchar(4000)
set @col_str=''
select @col_str=@col_str+',sum(case when spec='''' + spec +'''then price else 0 end as sp_' + spec
from (select distinct spec from table_name ) q_spec

exec ('select prod_name '+ @col_str + 'from table_name group by prod_name order by prod_name')

 
-- 不好意思,拼写有误,少写一括号
/*
名称 prod_name ,
规格 spec,
价格 price
表名 table_name
*/

declare @col_str nvarchar(4000)
set @col_str=''
select @col_str=@col_str+',sum(case when spec='''' + spec +'''then price else 0 end ) as sp_' + spec
from (select distinct spec from table_name ) q_spec

exec ('select prod_name '+ @col_str + 'from table_name group by prod_name order by prod_name')

 
动态检索规格数然后再构造sql,
不过你的问题真得很变态
 
后退
顶部