我有第三方程序使用数据库表来显示用户在屏幕上创建(在应用程序内)字段,所以我有一个名为User_Created_Fields的表,像根据第二个select语句选择要包含在select中的列
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字段s(对于相应的日期字段也是一样的)。
现在我需要创建一个报表,选择存储在Products表中的值,但是...因为这些字段将由用户添加,所以我需要选择来自表中的列和User_Created_Fields中的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。可能有更多的水晶esq方式来做到这一点,但我不知道它是什么。这个信息显然会与销售细节结合起来,但是我只是简单地将这一部分放在外面,因为这部分不够复杂。我使用水晶11和oracle 10
如果您已阅读所有这些,您应得到奖励....谢谢。
我可以得到选择运行,但是...它总是只返回表格名称和字段名称作为文本...它不会实际执行表格和字段名称作为选择的一部分 – user1023993
您可以使用动态SQL,存储过程和全局临时表的组合来实现此目的,有些参考资料可以查看以下链接http://www.dbforums.com/crystal-reports/1634385-using-oracle-package-data-source-report .html – psaraj12