1

これが私のクエリです。私は Cognos を初めて使用し、Cognos 10 を使用しています。また、サブクエリと内部結合クエリを使用するレポートを作成するのに少し苦労しています。

1.

SELECT ID, BATCH_DT, LOCIT FROM AOI.TEMP_BRICK
             WHERE BATCH_DT < (SELECT MAX(DATE) FROM CALENDAR)

2.

SELECT A.ID, B.SAL FROM TABLE as A LEFT OUTER JOIN TABLE as B
         WHERE A.ID=B.ID
4

1 に答える 1

0

まず、Cognos が独自の SQL を生成することを理解する必要があります。そのためには、Cognos Framework Manager でテーブル間の関係を定義する必要があります。それが完了すると、レポートには、レポート ページ、プロンプト ページ、およびクエリの 3 つの主要な部分があります。

  1. a.) Cognos で CALENDAR および AOI.TEMP_BRICK テーブルをセットアップします。TEMP_BRICK.BATCH_DT と CALENDAR.DATE の間の関係を定義することができます (TEMP_BRICK に存在する可能性のあるすべての日付の日付レコードがカレンダーにあると仮定します)。

    b.) 次に、新しいリスト レポートを作成します。ID、BATCH_DT、および DATE フィールドをリストに取り込みます。(ステップ A で 2 つのテーブルをリンクすることにした場合、日付はカレンダーから取得されます。それ以外の場合は、TEMP_BRICK の BATCH_DT フィールドを使用します。)

    c.) Query ページを開くと、Cognos が既に Query1 という名前の 1 つのクエリを作成していることがわかります。新しいクエリを作成する必要があります (qryMaxDate と呼びます)。そのクエリには、CALENDAR の「DATE」という 1 つの要素が含まれます。データ項目の「日付」フィールドのプロパティで、「集計関数」を「なし」から「最大」に変更します。

    d.) Query1 を編集し、そのクエリの日付にフィルターを追加します。Expression Definition で、Queries タブを選択し、qryMaxDate から「DATE」フィールドをドラッグします。[Batch Date] = [qryMaxDate].[Date] のようになります。

    e.) これで完了です。レポートを実行します。この場合、レポートを実行しているユーザーは何も入力していないため、プロンプト ページは必要ありません。

  2. a.) Framework Manager でテーブル A と B をセットアップします。スター スキーマ (A.ID = B.ID を定義し、1 対 n または n 対 1 を指定) を使用して、Framework Manager でテーブル A と B の間の関係を定義する必要があります。

    b.) 新しいレポートを作成し、テーブル a とテーブル b から要素をドラッグするだけです。それらの関係は Framework Manager で既に定義されているため、レポートの作成中に再定義する必要はありません。

2 番目の例は、Cognos のような BI プログラムの能力を示す優れたデモンストレーションです。レポートの作成者は、2 つのテーブルを結合する方法を完全に理解する必要はありません。関係はフレームワークで既に定義されているため、各テーブルから要素を抽出するだけで機能します。

于 2013-04-05T20:33:46.980 に答える