2017-08-10 89 views
1

我已經在SO一直在尋找的行組最後一個記錄,但沒有發現任何解決了這個問題SSRS選擇使用參數

我爲使用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 

此存儲過程outpouts如下:

enter image description here

  • 問題:問題是,我不知道如何應用參數@riskType只過濾最後的風險符合參數。 即如果我使用AND運算符在where子句中應用參數,查詢將返回與該參數匹配的表中的任何行,但我希望它只返回指示每個客戶的最後有效idRiskType的行。
+0

您是否在子查詢之外嘗試了額外的WHERE? – Schmocken

+0

我不太明白你的意思。根據您的樣本數據,您的期望輸出是什麼? –

+0

您是否試過在最後添加「WHERE rsTrail.idRiskType = @idRiskType」? –

回答

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