Oracle APEX交互式网格显示太多重复项

时间:2018-09-13 20:36:08

标签: oracle-apex-5.1

我有3个表:Employees,Locations和EmpLocation

  • Employees以Employee_ID作为主键存储员工数据,
  • 位置存储带有位置ID的位置数据。
  • EmpLocation存储Employee_ID和Location_ID。每个员工可以有多个位置。

我创建了一个基于EmpLocation表中数据的交互式网格:

GetUsersAsync

然后我将每个列设置为选择列表,并使用SQL查询作为源:

SELECT EMPLOYEE_ID, LOCATION_ID
FROM EmpLocation
GROUP BY EMPLOYEE_ID, LOCATION_ID

SELECT Employee_FName, Employee_ID FROM Employees

一切都很好,但是当我运行查询时

SELECT LocationName, Location_ID FROM Locations

在TOAD中,我得到约100条记录;但是在网格中,我得到了很多重复。无法确定发生了什么...

2 个答案:

答案 0 :(得分:0)

为什么首先要在EmpLocation表中允许重复项?保持什么意义

Littlefoot        Croatia        --> this ...
Coding Duchess    Somewhere
Littlefoot        Croatia        --> ... and this are duplicates

创建唯一索引

create unique index ui_emploc on emplocation (employee_id, location_id);

这样做,您将避免使用当前使用的group by子句。但是,为什么要使用它呢? 常规获取独特值(即

)的方式有什么问题
select distinct employee_id, location_id
from emplocation;

从Apex及其各种交互式网格开始(尽管看起来很漂亮,但我仍然更喜欢表格形式):如果创建经典报表(而不是交互式网格)会发生什么-您是否仍然看到重复项?

答案 1 :(得分:0)

尽管在Toad中测试的报告查询结果不包含重复项,但IG中显示重复行也遇到了相同的问题。我找到原因: 如果在IG中使用“选择列表”,并且该“选择列表”与IG重复,则显示此错误提示。