プロンプトに入力された日付範囲または列の値は、SpotfireIL修正SQLの変数として使用する必要があります

ダイアウルフ

情報リンクの変更されたSQl機能で変数として使用される日付範囲/任意の列のプロンプト入力を使用する必要があります。複数の条件を使用する複雑なクエリがいくつかあり、それらをビューに保持することができず、この変数を使用して変更されたSQLにそれらの条件を追加したいと思います。

これは、指定された日付の代わりに変数/パラメーターを使用する必要があるサンプルSQLです

SELECT xxxxx.yyyy

  FROM xxxxx, xxxxx, xxxxx, xxxxx

WHERE xxxxx.yyyyy = xxxxx.yyyyy


   AND ( ((    xxxxx.yyyy >= (TO_DATE ('11/01/2015', 'MM/DD/YYYY'))
             AND xxxxx.yyyy <  (TO_DATE ('12/1/2015', 'MM/DD/YYYY'))
             AND xxxxx.zzzzz >=    (TO_DATE ('11/01/2015', 'MM/DD/YYYY'))
             AND xxxxx.zzzzz < (TO_DATE ('12/1/2015', 'MM/DD/YYYY')) ))

        OR ((    xxxxx.zzzzz >= (TO_DATE ('11/01/2015', 'MM/DD/YYYY'))
             AND xxxxx.zzzzz < (TO_DATE ('12/1/2015', 'MM/DD/YYYY'))
             AND xxxxx.yyyy =  (TO_DATE ('01/01/1753', 'MM/DD/YYYY')) ))

        OR ((    xxxxx.zzzzz >=  (TO_DATE ('11/01/2015', 'MM/DD/YYYY'))
             AND xxxxx.zzzzz < (TO_DATE ('12/1/2015', 'MM/DD/YYYY'))
             AND xxxxx.yyyy > (TO_DATE ('10/15/2015', 'MM/DD/YYYY'))
             AND xxxxx.yyyy <  (TO_DATE ('12/1/2015', 'MM/DD/YYYY')) )) )

情報リンクに条件を追加する上記の場所で、次のようなパラメータを使用してSQLを変更する必要があります

WHERE xxxxx.yyyyy = xxxxx.yyyyy


       AND ( ((    xxxxx.yyyy >= @parameter1
                 AND xxxxx.yyyy <  @parameter2
                 AND xxxxx.zzzzz >=    @parameter1
                 AND xxxxx.zzzzz < @parameter2

さらに説明が必要な場合はお知らせください。

scsimon

これは、1つの条件でのみ機能します。これは、xxxxx.yyyy列のすべての日付に対して> =または<=です。あなたがあれば、しなければならないビューを使用し、あなたが使用する必要があるプロンプトを情報デザインに。方法は次のとおりです。

  1. インフォメーションデザイナーで情報リンクを開く
  2. SQLはそのままにしておきます。日付範囲を必要な最大範囲に設定します
  3. [プロンプト]セクションで、xxxxx.yyyy列のプロンプトを追加します
  4. プロンプトタイプ範囲に設定し必須ボックスをチェックします

次に、情報リンクを分析に追加します...

  1. プロンプトウィンドウが開いたら、下部にある[オンデマンドを使用]ボタンを選択します[OK] / [完了]を選択します
  2. ツールバーで、[編集]> [データテーブルのプロパティ]に移動し、データテーブルを選択します
  3. [データの種類]の下[設定]ボタンを選択します: [全般]タブ
  4. xxxxx.yyyy列を強調表示し、[入力定義]ボタンをクリックします
  5. 選択したパラメーターの入力のドロップダウンから値(固定/プロパティ/式)選択します
  6. [プロパティ]ラジオボタンを選択し[選択]ボタンをクリックします
  7. [新規]クリックして、テキスト領域で使用するDATE型のプロパティコントロールを作成します

繰り返しますが、これは理想的な方法ではありません。本当に複数の条件で複数のパラメータを使用したい場合は、ビューをプロシージャまたはテーブル値関数に変換する必要があります。それは難しいことではありません。


編集

CREATE PROCEDURE dbo.myProcedure(@parameter1 datetime, @parameter2 datetime)
AS

SELECT xxxxx.yyyy

FROM xxxxx, xxxxx, xxxxx, xxxxx

WHERE xxxxx.yyyyy = xxxxx.yyyyy

     AND xxxxx.yyyy >= @parameter1
     AND xxxxx.yyyy < @parameter2
     AND xxxxx.zzzzz >= @parameter1
     AND xxxxx.zzzzz < @parameter2

次に、これを新しいSSMSウィンドウに入力して、実行をテストできます。

EXEC dbo.myProcedure '4/1/2016','7/1/2016' --or what ever dates you want to pass in.

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ