如何针对此表创建视图?我想根据今天的日期选择。 BU400中的字段定义为Numeric 8 0.
我不明白的是,我是否必须在Iseries Navigator中重新创建表,这是Order标题和详细信息。它们已经存在于AS / 400上但从未在Iseries Navigator中使用过。创建视图后,我应该可以通过crystal Reports访问。
答案 0 :(得分:1)
使用CREATE VIEW
SQL语句创建视图并将数字日期转换为SQL日期。
请注意,如果表中存在任何无效日期,则在尝试选择数据时会导致错误。您可能必须在转换中包含验证逻辑。
例如:
CREATE VIEW myview AS
SELECT
DATE(SUBSTR(DIGITS(yyyymmdd),1,4) ||'-'||
SUBSTR(DIGITS(yyyymmdd),4,2) ||'-'||
SUBSTR(DIGITS(yyyymmdd),6,2)) AS mydate
FROM mytable
答案 1 :(得分:1)
在大多数情况下,SQL和SQL表可以使用DDS文件,RPG可以使用视图。您无需在IBM Navigator for i中重新创建DDS表,只需将其用于视图即可。
启动iNav。展开数据库。单击您的机器名称。在下面的数据库任务下,您将看到运行SQL脚本。双击它。它将打开一个窗口,您可以在其中输入JamesA发布的CREATE VIEW语句。完成后,使用File>保存会话。另存为...我将自己保留在IFS中,我可以轻松双击一个将其恢复,这样我就可以使用它了。我通过这种方式将所有DDL保存在IBM i上,这样我就可以轻松地重新创建我的视图,索引等。
修改强> 如果您不使用iNav,请考虑使用RUNSQLSTM并将脚本存储在常规源成员或流文件目录中。主要的想法是,如果您需要更改某些内容,或者可能创建类似的内容,您可以编写可以引用的脚本。
答案 2 :(得分:0)
在创建视图之前,我建议你创建perform the date conversions的功能。使用函数不仅可以简化您和其他人的语法,而且example code中使用的DETERMINISTIC关键字将缓存结果,从而提高计算性能。