0

如何针对此表创建视图?我想根据今天的日期进行选择。但是 AS400 中的字段定义为 Numeric 8 0。

我不明白的是,我是否必须在 Iseries Navigator 中重新创建表格,这是订单标题和详细信息。它们已经存在于 AS/400 上,但从未在 Iseries Navigator 中使用过。创建视图后,我应该可以通过水晶报表进行访问。

4

3 回答 3

1

使用CREATE VIEWSQL 语句创建视图并将数字日期转换为 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
于 2013-05-21T14:09:22.023 回答
1

在大多数情况下,SQL 可以使用 DDS 文件,而 RPG 可以使用 SQL 表和视图。您无需在IBM Navigator for i中重新创建 DDS 表,以便将其用于视图。

启动 iNav。展开数据库。单击您的机器名称。在下方的数据库任务下,您将看到运行 SQL 脚本。双击那个。它将打开一个窗口,您可以在其中输入 JamesA 发布的 CREATE VIEW 语句。完成此操作后,使用文件 > 另存为...保存会话。我将我的保存在 IFS 中,我可以轻松地双击一个将其恢复,以便我可以使用它。我以这种方式将所有 DDL 保存在 IBM i 上,这样我就可以轻松地重新创建我的视图、索引等。

编辑 如果您不使用 iNav,请考虑使用 RUNSQLSTM 并将脚本存储在常规源成员或流文件目录中。主要思想是,您可以编写脚本,如果您需要更改某些内容或创建类似的内容,您可以参考这些脚本。

于 2013-05-21T14:12:30.463 回答
0

在你创建视图之前,我建议你创建函数来执行日期转换。使用函数不仅可以为您和其他人简化语法,而且示例代码中使用的 DETERMINISTIC 关键字将缓存结果,从而提高计算性能。

于 2013-05-23T11:16:42.450 回答