2

ストアド プロシージャを使用して、SP へのパラメーターに基づいてレポートを生成しています。渡されたパラメーターに応じて、さまざまな場所の条件に参加する必要があります。

例のために。

ALTER PROCEDURE [dbo].[sp_Report_InventoryAging] 

@TitleFlag int=0, /*0-All veh, 1-Clear Title, 2-Without Clear Title*/

@CompName varchar(100) = 'ALL COMPANIES',

@CompBranchId varchar(50) = 'ALL',  /*All Offices*/

@StateId varchar(50)='All States'       /*All states*/ 

Select .... Where TitleFlag=@TitleFlag and

今、次のようなパラメーターに基づいて条件を指定したいと思います-

  1. 「ALL COMPANIES」でない場合、upper(Company)=upper(@CompName)
  2. 「ALL OFFICES」でない場合、OfficeID=@CompBranchId
  3. 「すべての州」でない場合、StateID=@StateID

パラメータ値に応じて select ステートメントの where 条件内でこれらの条件をすべてマージするにはどうすればよいですか?

どんな助けでも大歓迎です。

4

1 に答える 1

13

次のようにします。

where
(upper(Company)=upper(@CompName) or @compName = 'ALL COMPANIES')
and 
(OfficeID=@CompBranchId or @CompBranchId = 'ALL OFFICES')
and
(StateID=@StateID or @StateID = 'ALL States')
于 2009-06-15T20:09:34.447 に答える