0
我有数据,人们在月中更改了角色,并且想要在新的开始日期之后对活动进行计数。我可以用一个表的结果作为动态查询,我有一个查询返回以下结果集: -T-SQL动态查询和关键点
Firstname Surname StartDate
----------------------------------
Jon Smith 2015-01-01
Paul Jones 2014-07-23
...
所以查询看起来是这样的:
SELECT Firstname +' '+ surname, month, count(1) FROM dataTable
WHERE (Firstname='John' AND Surname='Smith' AND date >=2015-01-01)
OR (Firstname='Paul' AND Surname='Jones' AND date >=2014-07-23)
OR ...
但数量“手术室”将取决于行数在第一个表
Name Month Count
----------------------------------
Jon Smith 1 15
Paul Jones 1 16
Jon Smith 2 30
Paul Jones 2 25
Charlie Gu 1 52
,我可以再转动得到
Name 1 2
--------------------------
Jon Smith 15 30
Paul Jones 16 25
Charlie Gu 52 NULL
在此先感谢
我想你可以通过为你的查询声明一个varchar变量来实现创建一个动态查询,并在你的“或者子句”中迭代你想要的数据。之后执行内置的存储过程“exec sp_executesql @yourquery” – Shiffty 2015-02-11 11:01:51
也许我错过了什么,为什么要创建一个动态查询而不是加入包含start-enddate和employee角色的表的原因是什么? – Ako 2015-02-11 15:25:02