Cognos 报告(在查询资源管理器中生成查询)

Cognos report (gererate query in Query explorer)

我从 D_DEALER Table 获取的报告中有数据项 Dealer Code。但是在这里,当我执行 generate 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 中应用了一定级别的联接。但理想情况下,它应该只从一个 table (D_DEALER) 获取记录——为什么其他 tables (PGM_OPTIONS, OPTION_INDEX, D_SC_DLR_PROFILE)进入画面?

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

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

FM 有连接,但是当您从一个查询主题中提取一列时,SQL 应该只显示一个 table,但最有可能的是 table D_DEALER 在 FM 中嵌入了值为

的过滤器
"D_DEALER"."L_DLR_CURR_REC" = 'Y'
 "PGM_OPTIONS"."C_PGM_ATTR" NOT in ('U')

这是我的猜测