用于简单子查询和连接查询的COGNOS报告



以下是我的查询。我是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. )。设置CALENDAR和AOI。Cognos中的TEMP_BRICK表。您可能想要定义TEMP_BRICK之间的关系。BATCH_DT和CALENDAR。日期(假设你的日历对TEMP_BRICK中可能出现的每个日期都有日期记录)。

    b。)接下来,您将创建一个新的List Report。您将获取ID、BATCH_DT和DATE字段到列表中。(如果您决定在步骤A中链接两个表,则日期将来自日历,否则您将使用TEMP_BRICK中的BATCH_DT字段。)

    c。)您将打开Query页面,看到Cognos已经创建了一个名为Query1的查询。您需要创建一个新的查询(我们将其命名为qryMaxDate)。该查询将包含一个元素,即来自CALENDAR的'DATE'。对于数据项中'DATE'字段的属性,您可以将' aggregate Function'从None更改为'Maximum'。

    d。)现在编辑Query1,在该查询的Date上添加一个Filter。在表达式定义中,选择Queries选项卡并从qryMaxDate中拖动'DATE'字段。应该看起来像这样[Batch Date] = [qryMaxDate].[Date]

    e)。你完成了!运行报告。在本例中,运行报告的用户不提供任何输入,因此不需要提示页。

  2. )。在框架管理器中设置表A和表B。你需要在框架管理器中通过星型模式定义表a和表B之间的关系(定义A.ID = B.ID并指定1到n,或n到1)。

    b。)创建一个新报告,简单地从表a和表b中拖动元素。它们的关系已经在框架管理器中定义了,所以在编写报告时不需要重新定义。

第二个示例很好地展示了Cognos等BI程序的强大功能。报表作者不需要完全理解两个表连接的方式…它们只是简单地从每个表中取出元素并工作,因为关系已经在框架中定义了。

相关内容

  • 没有找到相关文章

最新更新