LoginSignup
1
0

More than 5 years have passed since last update.

Cognos Framework Manager で仮想データを生成する

Posted at

概要

ちょっとしたデータが欲しいのだけど、実際のデータベース上にテーブルを作って、データを入れて、というのが面倒くさく、Framework Managerの中でデータ作れたらいいのに、という時の、簡単なやり方です。
014.PNG

手順

データソース定義(DB2)以外、何も無い状態から始めます。
001.PNG

Database Viewで、ネームスペースを右クリック→「作成」→「クエリー・サブジェクト」を選択します。
002.PNG

名前を適当に入力して、「データ・ソース」を指定しOKを選択します。
003.PNG

ここでチェックを外し、そのまま「終了」します。
004.PNG

自由にSQLを書けるので、以下のように記載します。

WITH Numbers (n)              
  AS (SELECT CAST(1 AS INTEGER) 
        FROM sysibm.sysdummy1 
      UNION ALL               
      SELECT n + 1            
        FROM Numbers          
       WHERE n < 10)         
SELECT n                      
  FROM Numbers

005.PNG

※ちなみに、Oracleの場合は、以下のSQLでできます。

select level from DUAL connect by level <= 10

「クエリー情報」タブに移動し、「オプション」から「SQL設定」で、SQLタイプに「通過」を指定します。
006.PNG

「テスト」タブで「テスト・サンプル」を実行すると、以下のように1~10の数字が生成されます。OK。
007.PNG

次に、再度ネームスペースを右クリック→「作成」→「クエリー・サブジェクト」します。
008.PNG

適当に名前をつけて、「モデル」を選択しOK。
009.PNG

先ほど作成した「n」をクエリー・アイテムとして持って行き、「追加」を選択します。
010.PNG

以下の様に新規クエリー・アイテムの定義を記載し「テスト」を行うと、人物名のデータが生成されます。

case
when [DB2SAMPLE].[CREDATA].[n]  = '1' then 'ICHIRO'
when [DB2SAMPLE].[CREDATA].[n]  = '2' then 'JIRO'
when [DB2SAMPLE].[CREDATA].[n]  = '3' then 'SABURO'
when [DB2SAMPLE].[CREDATA].[n]  = '4' then 'SHIRO'
when [DB2SAMPLE].[CREDATA].[n]  = '5' then 'GORO'
when [DB2SAMPLE].[CREDATA].[n]  = '6' then 'ROKURO'
when [DB2SAMPLE].[CREDATA].[n]  = '7' then 'SHICHIRO'
when [DB2SAMPLE].[CREDATA].[n]  = '8' then 'HACHIRO'
when [DB2SAMPLE].[CREDATA].[n]  = '9' then 'KYURO'
when [DB2SAMPLE].[CREDATA].[n]  = '10' then 'JURO'
end

011.PNG

同様に、SALARYのデータも生成してみました。
012.PNG

こんな感じに、3つのデータアイテムが並んでいます。
013.PNG

「テスト」タブで、「テスト・サンプル」で見ると、以下の通りです。弟の方が稼いでいます。
014.PNG

あとは作成されたクエリーアイテムのプロパティから、使用方法を調整しておきましょう。
015.PNG

以上です。
ちょっとした時に使えるので、是非ご活用下さい。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0