【问题标题】:Cognos report (gererate query in Query explorer)Cognos 报告(在查询资源管理器中生成查询)
【发布时间】:2018-09-23 07:34:39
【问题描述】:

我从D_DEALER 表中获取的报告中有数据项Dealer Code。但是在这里,当我执行生成 sql 时,它会给出以下查询。

"select distinct
  "D_DEALER"."I_CURR" "Dealer_Code"
from
  "DEALER"."D_DEALER" "D_DEALER"          ,
  "SRVCTRCT"."PGM_OPTIONS" "PGM_OPTIONS"  ,
  "SRVCTRCT"."OPTION_INDEX" "OPTION_INDEX",
  "SRVCTRCT"."L_DLR_PROFL" "D_SC_DLR_PROFILE"
where
  "D_DEALER"."L_DLR_CURR_REC" = 'Y'
  and "PGM_OPTIONS"."C_PGM_ATTR" NOT in ('U')
  and "D_SC_DLR_PROFILE"."I_DLR_DIM" = "D_DEALER"."I_DLR_DIM"
  and "OPTION_INDEX"."C_OPT_KEY"     = "D_SC_DLR_PROFILE"."C_KEY_OPT"
  and "OPTION_INDEX"."I_SC_OPT_SAN"  = "PGM_OPTIONS"."I_SC_OPT_SAN" FOR FETCH ONLY"

在 Cognos FM 中应用了一定级别的连接。但理想情况下,它应该只从一个表(D_DEALER)中获取记录——为什么其他表(PGM_OPTIONSOPTION_INDEXD_SC_DLR_PROFILE)会出现?

【问题讨论】:

    标签: db2 cognos cognos-10 cognos-bi cognos-tm1


    【解决方案1】:

    FM 具有连接,但是当您从一个查询主题中提取一列时,SQL 应该只按您的预期显示一个表,但最有可能的是表 D_DEALER 在 FM 中嵌入了过滤器和值

    "D_DEALER"."L_DLR_CURR_REC" = 'Y'
     "PGM_OPTIONS"."C_PGM_ATTR" NOT in ('U')
    

    这是我的猜测

    【讨论】:

    • 非常感谢水生挑战鱼
    • 我帮你了吗?如何将我的答案标记为这样
    • 我还没有尝试过您的解决方案。但希望它会奏效。
    【解决方案2】:

    这确实是一个 Cognos 问题,但从 Db2 的角度来看,如果表之间的连接上有外键,优化器将删除任何冗余连接。

    但是,查看您的查询,需要完成所有连接,以便可以应用 "PGM_OPTIONS"."C_PGM_ATTR" NOT in ('U') 过滤器。 IE。您只要求没有 C_PGM_ATTR 为“U”的经销商。如果您删除该要求,您可能会发现 Db2 和/或 Cognos 将删除与其他表的连接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-23
      • 1970-01-01
      相关资源
      最近更新 更多