2016-12-28 6 views
0

SQL構文を使用してCognos Report Studioでレポートを作成しました。私のクエリには、いくつかの共通のテーブル式が含まれています。質問にプロンプ​​トをどのように渡すことができますか? というオプションの日付フィルタを使用したい場合は、2つのcte:sで使用します。次に、別のが必要であり、最終選択ステートメントで使用される多項式テキストフィルタがあります。以下はSQLを使用してCognosレポートスタジオのプロンプトを使用

私のクエリの簡易版である:

WITH in_date AS 
    (SELECT * FROM in_dates WHERE in_date > optional_date_prompt), 

out_date AS 
    (SELECT * FROM out_dates WHERE out_date > optional_date_prompt), 

organisation AS 
    (SELECT * FROM organisation) 

-- some joins and unions later i end up with this table 
SELECT * FROM final_table 
WHERE organisation_name = 'required_text_prompt' OR 
    organisation_name = 'optional_text_prompt_value' 

定期Cognosのフィルタは、レポートのページに適用されるプロンプトを使用するには、レポートを実行する時間を取るようオプションではありません。

答えて

0

パラメータをSQLに直接渡すには、マクロを使用します。組織と呼ばれる文字列プロンプトのプロンプトマクロは次のようになります。

#prompt('org','string')# 

最初のパラメータは、プロンプトの名前と型の第2です。これは、指定する必要があるパラメータの最小量です。他にも省略可能なパラメータがあります(デフォルト値など)。 Cognosのドキュメントには、さらに多くのオプションがあります。あなたのWHERE句でプロンプトマクロを置く

WHERE organisation_name = #prompt('org','string')# 

Cognosのは、マクロを参照して、データ・ソースへのSQLを送信する前にそれを解決します。

+0

ありがとうございました!私は、次のようにSQL IN節を使用して同様のソリューションを行いました: 'organisation_name IN(#promptmany( 'prompt_organisation')#)' –

関連する問題