注意:此帖与前一篇文章稍有变化。SQL Server 2008 R2:数据透视表的动态查询,其中有和子句
我有下面的表格,详细信息如下例所示。
例:
表:测试
create table test
(
cola varchar(10),
colb varchar(10),
colc varchar(10)
);
插入:
insert into test values('101','1234','A1');
insert into test values('101','4321','A2');
insert into test values('201','5678','A3');
insert into test values('301','8765','A4');
insert into test values('401','9877','A1');
insert into test values('101','9997','A6');
insert into test values('201','2277','A1');
insert into test values('201','1577','A5');
注意:现在我只想显示的记录中, cola
属于colc
的值。如果用户将colc
值作为参数传递给存储过程,那么它必须匹配colc
的确切值,它属于哪个值,即cola
。
预期结果:
如果用户通过A1,A2,A6
那么结果应该是:
注意:在上述结果的记录101
出现,因为它属于A1,A2,A6
没有其他值。 201
不会出现,因为它也属于A1,A3
和A5
。
如果用户通过A1
那么结果应该是:
cola A1
--------
401 1
注意:在上述结果的记录401
出现,因为它属于A1
。
我尝试:
透视查询:
获取结果:
cola A1
----------
101 1
401 1
你可以去这里practicle:
小号QL小提琴:
http://sqlfiddle.com/#!3/9b1fd/4
这不符合预期的结果。请重新检查它。 – MAK 2014-11-23 15:05:26
对不起..我的意思是这个代码:http://sqlfiddle.com/#!3/9b1fd/72 你可以修改它来设置totalparam作为参数。 – 2014-11-23 15:35:16
请检查此:http://sqlfiddle.com/#!3/5298f/1 – MAK 2014-11-23 16:05:45