我有一个第三方程序,它使用数据库表在屏幕上显示用户创建的(在应用程序内)字段,所以我有一个名为 User_Created_Fields 的表,看起来像
TABLE FIELD_NAME GROUP LABEL
products charge1 1 First Charge
products begin_date1 1 Begin Date
products end_date1 1 End Date
products charge2 2 First Charge
products begin_date2 2 Begin Date
products end_date2 2 End Date
当应用程序在表格中看到它时,它会在应用程序中显示以下内容
Group 1
First Charge *text area for input*
Begin Date *text area for input*
End Date *text area for input*
----------
Group 2
First Charge *text area for input*
Begin Date *text area for input*
End Date *text area for input*
应用程序将这些字段的数据保存到在 User_Created_Fields 表中指定的表和字段名称中,因此 PRODUCTS.charge1 和 PRODUCTS.charge2 字段(与相应的日期字段相同)。
现在我需要创建一个报告,选择存储在 Products 表中的值,但是......因为字段将由用户添加,所以我需要选择来自 User_Created_Fields 表中的 Table 和 field_name 列的列。
所以输出看起来像
PRODUCTS.Begin_date, PRODUCTS.End_date, PRODUCTS.Charge1, User_Created_Fields.Group
查询看起来(非常粗略)像
select (select Table ||'.'||field_name from User_Created_Fields where Label='First Charge' and Group= (select Group from User_created_fields where label ='First Charge') ) from Products
这将进入一个水晶报告,所以我不能像往常一样使用 sql 来生成 sql。可能还有一种更水晶的方式来做到这一点,但我不知道它是什么。显然,此信息将与销售详细信息相结合,但为了简单起见,我将那部分省略了,因为这部分足够复杂。我正在使用水晶 11 和甲骨文 10
如果你已经阅读了所有这些,你应该得到奖励......谢谢。