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')
这是我的猜测
我从 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')
这是我的猜测