Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql OBIEE在其select中使用无关事实表生成查询_Sql_Oracle_Plsql_Oracle12c_Obiee - Fatal编程技术网

Sql OBIEE在其select中使用无关事实表生成查询

Sql OBIEE在其select中使用无关事实表生成查询,sql,oracle,plsql,oracle12c,obiee,Sql,Oracle,Plsql,Oracle12c,Obiee,在一项分析中,我们按贷款利率计算所有贷款项目的数量。它使用一个事实表F1和三维表D1、D2和D3。F1已连接到所有这些三维表格。因此,在我看来,不应该生成任何复杂的查询来获得结果 但是,在运行分析时,计数返回0。在数据库中,我查看了为该分析生成的物理查询,发现正在创建两个选择,另一个事实表F2正在第二个选择中使用 奇怪的是,在分析中并没有使用F2,在“条件”选项卡中并没有选择其列,该表中并没有F1、D1、D2或D3中的LTS。一个常见的现象是,F2也连接到D1、D2和D3。但若在分析中并没有选择

在一项分析中,我们按贷款利率计算所有贷款项目的数量。它使用一个事实表F1和三维表D1、D2和D3。F1已连接到所有这些三维表格。因此,在我看来,不应该生成任何复杂的查询来获得结果

但是,在运行分析时,计数返回0。在数据库中,我查看了为该分析生成的物理查询,发现正在创建两个选择,另一个事实表F2正在第二个选择中使用

奇怪的是,在分析中并没有使用F2,在“条件”选项卡中并没有选择其列,该表中并没有F1、D1、D2或D3中的LTS。一个常见的现象是,F2也连接到D1、D2和D3。但若在分析中并没有选择F2,为什么要在查询中使用F2,你们有什么想法吗

以下是我们在BMM中的内容:

如果是这种情况,那么根据您的模型,两个事实都可以满足分析的需要。您的模型可能不够明确

您是否在主题区域设置了隐式事实列以强制F03超过F02?请注意,每个主题区域只能设置一个隐式事实列

如果您真的想解决这个问题而不是解决它,那么您必须确保您的模型在用于哪个查询的事实方面是明确的


另外:如果这是您的BMM层,那么有一个建议:使用正确的企业名称和名称!看到像“CAL_DAY”这样的东西,商业用户会想,他们是否面临着某种由相当过时的员工管理的1980年代的技术;)

谢谢,克里斯。这消除了在一个主题领域中使用多个事实栏的一些混乱理解。关于隐式事实列,我没有在主题区域设置隐式事实列。还没有尝试过,但我认为这将强制使用F03而不是F02,从而得到正确的结果。但是在做这件事之前,我想问一下有什么方法可以使模型更明确。经过一些研究,我发现F2不需要连接到D3,所以消除连接会使它更明确吗?另外:你是对的,名称可能会混淆。我正在处理已经存在的存储库,所以现在主要的重点是在演示中获得正确的结果,我正在考虑在消除这种错误后立即更改业务名称。删除了F2和D3之间不必要的连接,现在分析给出了正确的结果。这种情况下不需要一个联接,但如果需要所有联接,我认为应该按照您所说的那样设置隐式事实列