sql - 进度数据库 4GL - 导出文件的数学计算

标签 sql openedge progress-4gl progress-db

将执行以下语句。但是,我想要 wShipment.Volume 除以 1728 并导出该结果。

例如,如果 wShipment.Volume 为 3456,则应将结果 2 导出到报告中。

OUTPUT TO \\tsclient\U\All_Orders_item.csv.

FOR EACH r4_wms.wShipmentDet NO-LOCK,

FIRST r4_wms.wShipment OF r4_wms.wShipmentDet NO-LOCK where wShipment.shipmentNO>6500 and wShipmentDet.Owner="MIDEAUS",

FIRST r4_wms.wOrder OF r4_wms.wShipmentDet NO-LOCK,

FIRST r4_wms.wOrderline OF r4_wms.wShipmentDet NO-LOCK
 BY wShipment.ShipmentNo DESC:

EXPORT DELIMITER ","

           wOrder.OrderNo

           wShipment.Volume

           wShipment.Weight SKIP.   

 END.

 OUTPUT CLOSE. 

最佳答案

如果您只想除以 1728,您可以直接在 EXPORT 语句中执行此操作:

wShipment.Volume / 1728

但是“1728”听起来像是您正在寻找立方英尺 (12 x 12 x 12)。如果您需要体积的最小整数立方英尺,您可以这样计算:

DEFINE VARIABLE RoundedVol AS INTEGER NO-UNDO.

RoundedVol = TRUNCATE(wShipment.Volume / 1728, 0).
IF wShipment.Volume MOD 1728 > 0 THEN 
    RoundedVol = RoundedVol + 1.

然后将 RoundedVol 添加到 EXPORT 语句中。它将为您提供任何分数的立方英尺四舍五入。因此,对于 1729 卷,您将获得 2。

关于sql - 进度数据库 4GL - 导出文件的数学计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47926842/

相关文章:

php - MySQL SQL 对字段中的某些单词进行排序

directory - PROGRESS - 验证用户输入文件输出路径

php - 进行 aes_encrypt 的更好方法以及如何存储 aes_encrypt 的 keyString

php - 二级 key 的用途

sql - 是否可以让 PostgreSQL 函数返回 “arbitrary” 类型?

progress-4gl - 进度 ABL : BREAK BY With multiple joins in an OPEN QUERY

progress-4gl - 从正在进行的字符串中删除所有特殊字符 4GL

progress-4gl - 以 ".d"文件格式转储 OpenEdge 数据库表中的记录子集

java - 是否可以从java代码调用进度程序(.p文件)

progress-4gl - 从 csv 中删除不需要的逗号