我已经在apex应用程序中创建了一个对话框页面。在此页面上,用户可以为图表选择几个过滤器。单击按钮后,用户将重定向到上一页,并且刷新包含图表的区域。我的问题是设置过滤器不起作用。重定向到上一页后,图表将无休止地刷新,直到出现错误:错误的网关。因此,我看不到图表的任何结果。我的图表查询是否可能太复杂?对话框页面包含航天飞机类型的四项,这是我的图表的查询。
select COUNT(TRIGGER_TABLE.DATUM_UHRZEIT) as Anzahl_Trigger,
TEST.ID as ID
from BRIDGE_SYSTEM_TRIGGER, SYSTEM_TABLE, TRIGGER_TABLE, FAHRT, TEST, MITARBEITER
where BRIDGE_SYSTEM_TRIGGER.SYSTEM_TABLE_SYSTEM_ID = SYSTEM_TABLE.SYSTEM_ID
and BRIDGE_SYSTEM_TRIGGER.TRIGGER_TABLE_TRIGGER_ID = TRIGGER_TABLE.TRIGGER_ID
and TRIGGER_TABLE.FAHRT_FAHRT_ID = FAHRT.FAHRT_ID
and MITARBEITER.QNUMMER = FAHRT.MITARBEITER_QNUMMER
and FAHRT.TEST_ID = TEST_ID
and TRIGGER_TABLE.PRIORITAET = 0
or ((instr(':' || upper(:P26_Tests) || ':', upper(Test.Test_ID)) > 0)
or (instr(':' || upper(:P26_UEBERSYSTEM) || ':',':' || upper(system_table.system_name) ||':') > 0) or (instr(':' || upper(:P26_UNTERSYSTEM) || ':',':' || upper(system_table.system_name) ||':') > 0)
or (instr(':' || upper(:P26_COUNTRIES) || ':', upper(FAHRT.LAND)) > 0)
or (instr(':' || upper(:P26_REF) || ':', upper(Test.REF)) > 0)
or (instr(':' || upper(:P26_DRIVER) || ':', upper(MITARBEITER.QNUMMER)) > 0))
GROUP BY TEST.ID
ORDER BY TEST_ID;
查询不会引发任何错误。我想到的另一个问题是刷新定义不正确或无法正常工作。
答案 0 :(得分:0)
我可以解决我的问题!刷新没有错。尽管我无法证明为什么不加载刷新,但是我认为这是运行时问题,因为查询太复杂了。
我将查询的最后五个或条件更改为从句。这样做之后,刷新将再次起作用。
select COUNT(TRIGGER_TABLE.DATUM_UHRZEIT) as Anzahl_Trigger,
TEST.ID as ID
from BRIDGE_SYSTEM_TRIGGER, SYSTEM_TABLE, TRIGGER_TABLE, FAHRT, TEST, MITARBEITER
where BRIDGE_SYSTEM_TRIGGER.SYSTEM_TABLE_SYSTEM_ID = SYSTEM_TABLE.SYSTEM_ID
and BRIDGE_SYSTEM_TRIGGER.TRIGGER_TABLE_TRIGGER_ID = TRIGGER_TABLE.TRIGGER_ID
and TRIGGER_TABLE.FAHRT_FAHRT_ID = FAHRT.FAHRT_ID
and MITARBEITER.QNUMMER = FAHRT.MITARBEITER_QNUMMER
and FAHRT.TEST_ID = TEST_ID
and TRIGGER_TABLE.PRIORITAET = 0
and ((instr(':' || upper(:P26_Tests) || ':', upper(Test.Test_ID)) > 0)
and (instr(':' || upper(:P26_UEBERSYSTEM) || ':',':' || upper(system_table.system_name) ||':') > 0) or (instr(':' || upper(:P26_UNTERSYSTEM) || ':',':' || upper(system_table.system_name) ||':') > 0)
and (instr(':' || upper(:P26_COUNTRIES) || ':', upper(FAHRT.LAND)) > 0)
and (instr(':' || upper(:P26_REF) || ':', upper(Test.REF)) > 0)
and (instr(':' || upper(:P26_DRIVER) || ':', upper(MITARBEITER.QNUMMER)) > 0))
GROUP BY TEST.ID
ORDER BY TEST_ID;
该查询必须具有明确的外观,因为我想过滤,这就是为什么我需要and条件的原因。每个元素必须为真,否则将出现错误结果。