Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server 2014中的动态透视_Sql Server - Fatal编程技术网

Sql server SQL Server 2014中的动态透视

Sql server SQL Server 2014中的动态透视,sql-server,Sql Server,我有一个列如下的表: ProductID ProductName ProductCategory Storage 1 Doll Toy A1 2 Car Toy A2 3 Cola Drink A1 4 Pure Water Drink A3 我希望输出表采用以下格式: Storage Toy Dr

我有一个列如下的表:

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

请帮助我如何解决这个问题。非常感谢。

将动态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);

非常感谢你。它工作得很好。还有一个问题:产出能有百分比吗?(如A1 50%50%、A2 50%0%、A3 0%50%)