0

ストアドプロシージャから実行されるSSRSレポートがあります。選択する必要のある2つのパラメーターがあります。私の最初のパラメーターは完全に機能しますが、2番目のパラメーター(担当者)が選択されると、レポートによって無視され、すべての担当者が返されます。

@Town Varchar(100)
,@Rep Varchar(100)

    select 
    a.Customer
    ,a.CustName
    ,a.Rep
    ,a.Town
    ,a.Qty
    ,a.SalesType
    ,b.Qty1
    ,c.Qty2
    ......
    from #1 a
    left join #2 b
    on a.Rep = b.Rep
    and a.Town = b.Town
    and a.Customer = b.Customer
    and a.SalesType = b.SalesType
    left join #3 c
    ..........
    WHERE ('ALL' IN (@Town))    OR     (a.Town IN (@Town)) 
    and ('ALL' IN (@Rep))    OR     (a.Rep IN (@Rep))
4

1 に答える 1

5

ここで推測しますが、との句を@Townそれぞれ@Repグループとして評価する必要があると想定しています。そうするために:

WHERE ('ALL' IN (@Town)    OR     a.Town IN (@Town)) 
and ('ALL' IN (@Rep)    OR     a.Rep IN (@Rep))

あなたがそれを持っているように、各節は独立しているので、あなたは短絡の振る舞いをするでしょう。

于 2012-08-31T11:08:54.647 に答える