SSRS使用参数从行组中选择最后一条记录

时间:2017-08-10 10:25:36

标签: sql-server reporting-services

我一直在搜索,但没有找到解决问题的方法

我正在使用SSRS本机模式,我想根据参数@idRiskType创建一个带过滤器的报告。

考虑下表:( risktrail)

enter image description here

我创建了一个存储过程来查找所有客户的最后一种风险类型,它运行正常。这是:

CREATE procedure [dbo].[byRisk] @riskType int
 as
 select c.idCustomer, rsTrail.idRiskType
 from customer as c
  cross apply 
      (select top 1 idRiskType
       from risktrail 
       where risktrail.idCustomer = c.idCustomer
       order by idTrail desc) as rsTrail

此存储过程超出以下内容:

enter image description here

  • 问题:问题是我不知道如何应用参数@riskType来仅过滤与参数匹配的最后风险。 即如果我使用AND运算符在where子句中应用参数,则查询将返回与参数匹配的表的任何行,但我希望它只返回指示每个客户的最后有效idRiskType的行。

1 个答案:

答案 0 :(得分:2)

CREATE procedure [dbo].[byRisk] @riskType int
 as
 select c.idCustomer, rsTrail.idRiskType
 from customer as c
  cross apply 
  (select top 1 idRiskType
   from risktrail 
   where risktrail.idCustomer = c.idCustomer
   order by idTrail desc) as rsTrail  
  where rsTrail.idRiskType = @idRiskType