-1

これを解決するには助けが必要です。

うまくいけば、誰かが私にアドバイスを与えることができます。

サンプルとして、次のようなデータがあります。

                            PROCLIB.MARCH                                1
                          First 10 Rows Only

  Flight     Date  Depart  Orig  Dest     Miles   Boarded  Capacity
  -----------------------------------------------------------------
  114     01MAR94    7:10  LGA   LAX       2475       172       210
  202     01MAR94   10:43  LGA   ORD        740       151       210
  219     01MAR94    9:31  LGA   LON       3442       198       250
  622     01MAR94   12:19  LGA   FRA       3857       207       250
  132     01MAR94   15:35  LGA   YYZ        366       115       178
  271     01MAR94   13:17  LGA   PAR       3635       138       250
  302     01MAR94   20:22  LGA   WAS        229       105       180
  114     02MAR94    7:10  LGA   LAX       2475       119       210
  202     02MAR94   10:43  LGA   ORD        740       120       210
  219     02MAR94    9:31  LGA   LON       3442       147       250

そして、('LAX,ORD'), 'LAX','LON','YYZ',('PAR,LON,FRA'),'FRA' ...AND ELSE の条件があります

レポートをSQLでその条件として表示するには、そのデータをどうすればよいですか?

私が作ったパラメータは

 Dest like @dest -> (from table condition(('LAX, ORD'), 'LAX','LON',('PAR,LON,FRA'),'FRA',..etc)) +'%' 
 And Date like @date + '%' 
 And Depart like @depart + '%'

'LAX'asを選択すると@dest、のみ'LAX'が表示されます

'LAX,ORD'asを選択すると、と@destのみが表示されます'LAX''ORD'

これについて助け、アドバイス、提案が必要です。

ありがとう

4

1 に答える 1

0

値が「LAX,ORD」の場合 @dest、ソリューションを解決する 1 つのクエリは次のとおりです。

 select *
 from PROCLIB.MARCH
 where dest in ('LAX','ORD')

それをパラメータ化するには、それをテーブルにする必要があります。

 Dest
 ====
 LAX
 ORD

クエリは次のようになります

 select *     
 from PROCLIB.MARCH
 where dest in (select Dest from @DestTable)

文字列パラメーターとして渡したい場合は@dest、何らかの方法でテーブルに分割する必要があります。SQL分割関数を検索すると、いくつかのオプションが表示されます。

クエリがストアド プロシージャにカプセル化されている場合、より適切な方法は、値をテーブル値パラメーターとして渡すことです。http://blog.sqlauthority.com/2008/08/31/sql-server-table-valued-parameters-in-sql-server-2008/を参照してください。

于 2013-07-31T08:42:19.857 に答える