我想使用以下查询来查找最后一个招标ID.
FOR EACH tender-table NO-LOCK WHERE tender-table.kco = 1 BY tender-table.id:
DISPLAY tender-table.id.
END.
Run Code Online (Sandbox Code Playgroud)
此查询查看所有投标ID,并以升序返回所有id的所有结果.我得到的结果是
1,035 1.036 ...... 1,060 1,061 1,062 1,063 1,064 1,065 1,066
FOR LAST tender-table NO-LOCK WHERE tender-table.kco = 1 BY tender-table.id:
DISPLAY tender-table.id.
END.
Run Code Online (Sandbox Code Playgroud)
但是,当我使用此查询来查找最后一个ID时,我得到结果,
1061
当我应该看到结果1,066.任何人都可以建议为什么会这样吗?
如何使用代码检查特定文件的存在.例如.def var a as character.a ="abc.p"
运行值(a).--->首先我要检查工作区中是否存在abc.p.
我从查询中填充了一个临时表,临时表看起来像,
ttcomp.inum
ttcomp.iname
ttcomp.iadd
Run Code Online (Sandbox Code Playgroud)
此临时表中有5000条记录,现在我想写入CSV文件.我认为它可以完成,output stream但我不知道如何实现这一点.请有人帮我解决这个问题.
在这个例子中,我有两个表; 订单标题(oe-hdr)和位置(位置).订单表头表包含两个字段(sale-location-key和ship-location-key),这些字段在位置表中具有关联的位置名称.如果我使用SQL来获取结果,我会做这样的事情.
SELECT oe-hdr.order-num, oe-hdr.order-date, saleloc.location-name, shiploc.location-name
FROM oe-hdr,
(SELECT location.location-name
FROM oe-hdr, location
WHERE oe-hdr.sale-location-key = location-key) as saleloc,
(SELECT location.location-name
FROM oe-hdr, location
WHERE oe-hdr.ship-location-key = location-key) as shiploc
WHERE oe-hdr.order-num = saleloc.order-num
AND oe-hdr.order-num = shiploc.order-num
Run Code Online (Sandbox Code Playgroud)
有谁知道如何在Progress程序中复制它?
我正在努力了解如何在进度案例表达式中检查空值。我想查看是否存在一列并使用它,如果不使用后备列。例如,威廉的名字将由Bill在fn.special-char中覆盖。
我有以下查询:
SELECT
"PUB"."NAME"."LAST-NAME" as LastName,
CASE fn."SPECIAL-CHAR"
WHEN is null THEN "PUB"."NAME"."FIRST-NAME"
ELSE fn."SPECIAL-CHAR"
END as FirstName
FROM "PUB"."NAME"
LEFT OUTER JOIN "PUB"."DAT-DATA" fn on "PUB"."NAME"."NAME-ID" = fn."DAT-SRC-ID" and 11 = fn."FLD-FIELD-ID"
Run Code Online (Sandbox Code Playgroud)
当我运行查询时,我得到:
ORBC Progress OpenEdge Wire Protocol驱动程序] [OPENEDGE]语法错误SQL语句等于或大约为“,然后为” PUB“。” NAME“。” FIRST-“(10713)
如果我选择*,我会看到一切。它只是不喜欢空白部分。我还可以将when null更改为when'bob',并且它可以工作。
在进度数据库查询中使用空值是否需要做其他事情?
我在查询时遇到困难,我必须更改该查询以限制从进度数据库导出的数据。我将“myorderdate”导出到文本文件。但是,我必须将数据限制为仅 2012 年之后的订单。
OUTPUT STREAM s1 TO VALUE(exportFileStringDirectory).
FOR EACH poTable NO-LOCK WHERE
ponum = 1 AND
/* this doesn't work -->*/
/*myorderdate.YEAR >= DATE("2012").YEAR AND*/
conum = 1:
PUT STREAM s1 UNFORMATTED
ISO-DATE(myorderdate)
SKIP.
END.
OUTPUT STREAM s1 CLOSE.
Run Code Online (Sandbox Code Playgroud)
我是 Progress 4GL 数据库的新手,并且完全使用数据库。我所要做的只是对代码进行一点小小的更改,因此如果描述缺少一些重要信息,请原谅我。
我是新手,我想从出生日算出年龄,我不知道该怎么做.如果有人知道这个,请帮助我.提前致谢.
到目前为止我尝试过的是:
define var dob as date.
define var age as character.
assign
dob = 09/16/1988.
age = STRING(INT(YEAR(TODAY) - YEAR(dob ))).
message age view-as alert-box.
Run Code Online (Sandbox Code Playgroud)
它显示30岁,但实际上年龄是29岁.
我正在尝试使用查询列出实际所有者的所有公寓。
我的公寓桌子看起来像这样:
building | apartmentNbr | owner | start | end
b1 | a1 | o1 | 2009-08-13 | 2010-08-13
b1 | a1 | o2 | 2010-08-14 | 2019-01-01
b1 | a2 | o3 | 2009-01-03 | 2010-01-03
b1 | a2 | o4 | 2010-01-04 | 2010-08-13
b1 | a2 | o5 | 2010-08-14 | 9999-12-31
b1 | a3 | o6 | 2010-08-14 | 2019-12-31
b1 | a3 | o7 | 2020-02-14 | 9999-12-31
b2 | b1 | o8 | …Run Code Online (Sandbox Code Playgroud) 我正在努力通过FOR EACH. 我的目标是只从表中读取前 2 条记录,并将一个字段值保存到变量中。
假设我有一个MyTable包含字段PartNr, CreationDate, Company,的表ID。
我的FOR EACH声明看起来像这样:
FOR EACH MyTable
WHERE MyTable.Company = "TestCompany"
AND MyTable.CreationDate >= 01.01.2021
NO-LOCK:
END.
Run Code Online (Sandbox Code Playgroud)
例如, FOR EACH 语句会找到 15 条记录。然而,我只需要前两个。我想存储PartNr的的first记录在一个变量,而PartNr该的second另一个变量的记录。
之后,FOR EACH声明应该结束。
我也试过使用FIND FIRST,但我不知道如何获得第二条记录。
我几乎找了python相当于break当使用关键字loops。
任何帮助深表感谢。
是否可以定义窗口出现在哪个屏幕上?我试图找到解决方案,但始终只获得有关如何将某些内容显示在屏幕上或如何监视数据库的信息。
openedge ×10
progress-4gl ×7
progress-db ×2
sql ×2
case ×1
comparison ×1
csv ×1
datetime ×1
for-loop ×1
select ×1