2017-08-10 3 views
1

を使用して行のグループからレコードが、その問題を解決し、何も見つからなかっSSRSを選択し、最後の私はSOで検索されましパラメータ

私はSSRSネイティブモードを使用してMと私はパラメータに基づいてフィルタを使用してレポートを作成したいです@idRiskType。

は、次の表を考えてみます(risktrail)

enter image description here

私はすべての顧客のための最後のリスクの種類を見つけるために、ストアドプロシージャを作成して、それが正常に動作します。ここでは、次のとおりです。

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問題は、私が唯一のフィルタ処理するパラメータ@riskTypeを適用する方法がわからないということですパラメータと一致する最後のリスク。 つまり、AND演算子を使用してwhere句でパラメータを適用すると、クエリはパラメータに一致するテーブルの行を返しますが、各顧客のLAST有効な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 
関連する問題