我正在使用apex应用程序构建来创建报告。
表
人员
id name
201 john
302 sarah
787 bob
产品
product_editor_id product_name
201 car
307 shoe
728 airbag
正如您在员工表中看到的,我有员工详细信息,在产品中我有员工ID来显示创建它的员工。
在我的报告中,我从员工表中选择了所有内容,但是您看到我的工作人员在哪里id
我不想显示id
,而是显示他们的名字
我已经为此重写了一个查询。我问这个问题的原因是在之前的查询中我有类似的东西
select * from staff Inner join
company_car ON
staff.staff_car_id=company_car.vehicle_id_staffid
如果该查询没有意义。基本上我这样做只显示有公司车的员工,而vehicle_id_staffid与员工ID相同。
无论如何,对于该查询,我需要将新查询添加到
select distinct name from staff
left join product on
staff.id=product.product_editor_id
我试过
select * from staff Inner join
company_car ON
staff.staff_car_id=company_car.vehicle_id_staffid
UNION
select distinct name from staff
left join product on
staff.id=product.product_editor_id
但是apex说ORA-01789: query block has incorrect number of result columns
我希望它的结果不同。第一个查询应该对第二个查询有任何问题,因为它们只是在做自己的事情。
答案 0 :(得分:0)
可能最简单的方法是在其中创建包含staff_id的原始报告。所以 将新报告创建为新页面或页面上的区域。 - 像:
Select * from company_car
因此,您获得将staff_id作为其中一列的报告。然后您编辑页面属性并转到报告。
选择报告属性,然后从报告中的列表中选择staff_id列编辑(左侧的铅笔图标)。
转到显示为并选择'根据LOV显示为文字不要保存状态'
将显示值列表。转到值列表部分
并输入:
select id r, name d from staff;
或
select id r, name||' '||surname d from staff;
在这里你需要将staff_id与姓名和姓氏联系起来,这将显示在报告上而不是无意义的身份证上。或者,您可以创建静态LOV并使用它来填充此列,或者您可以尝试构建JOIN语句。