2016-11-22 37 views
1

我有一个栏目表:动态透视2014

ProductID ProductName ProductCategory Storage 
1   Doll  Toy    A1 
2   Car   Toy    A2 
3   Cola  Drink   A1 
4   Pure Water Drink   A3 

我想以这种格式输出表:

Storage Toy Drink 
A1  1 1 
A2  1 0 
A3  0 1 

请帮助我,我应该怎么解决这个问题。非常感谢。

回答

1

使用带有STUFF的动态sql查询。

查询

declare @sql as varchar(max); 
select @sql = 'select [Storage], ' 
       + stuff((select distinct ', sum(case [ProductCategory] 
       when ''' + [ProductCategory] + ''' 
       then 1 else 0 end) as ' + [ProductCategory] 
       from [your_table_table] 
       for xml path('') 
       ), 1, 2, '') 
       +' from [your_table_table] group by [Storage]'; 

exec(@sql); 
+0

非常感谢你。它完美的作品。还有一个问题:输出是否有百分比? (如A1 50%50%,A2 50%0%,A3 0%50%) – Danie