簡體   English   中英

用於簡單子查詢和連接查詢的 COGNOS 報告

[英]COGNOS report for a simple sub query and join Query

這是我的查詢。 我是 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

首先,您必須了解 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 中鏈接兩個表,則日期將來自日歷,否則您使用 TEMP_BRICK 中的 BATCH_DT 字段。)

    c.) 您將打開查詢頁面並看到 Cognos 已經創建了一個查詢,稱為 Query1。 您需要創建一個新查詢(我們將其稱為 qryMaxDate)。 該查詢將包含一個元素,即來自 CALENDAR 的“DATE”。 在數據項中“日期”字段的屬性上,您可以將“聚合函數”從“無”更改為“最大值”。

    d.) 現在編輯您的 Query1,在該查詢的日期上添加一個過濾器。 在表達式定義中,選擇查詢選項卡並從您的 qryMaxDate 中拖動“日期”字段。 應該看起來像這樣 [Batch Date] = [qryMaxDate].[Date]

    e.) 你完成了! 運行報告。 在這種情況下,運行報告的用戶沒有提供任何輸入,因此不需要提示頁面。

  2. a.) 在 Framework Manager 中設置表 A 和 B。 您需要通過星型模式在 Framework Manager 中定義表 A 和 B 之間的關系(定義 A.ID = B.ID 並指定 1 到 n,或 n 到 1)。

    b.) 創建一個新報告並簡單地從表 a 和表 b 中拖入元素。 它們的關系已經在 Framework manager 中定義,因此在編寫報告時無需重新定義。

您的第二個示例很好地展示了 Cognos 等 BI 程序的強大功能。 報告作者不需要完全理解兩個表的連接方式......他們只需從每個表中提取元素即可工作,因為框架中已經定義了關系。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM