目前,我有一个 IDescriptor 可以从另一个文件中提取 1、2、3 期间的销售额。我希望能够从期间 1、2、3 中提取成本并减去总计以获得利润。
当前的 I-Descriptor 语句是:
TRANS(SAS1,ITEM,4,'X');@1<1,1,1>+@1<1,1,2>+@1<1,1,3>
- 4 = 销售额
- 3 = 成本
- @1<1,1,1> = 周期 1
- @1<1,1,2> = 周期 2
- @1<1,1,3> = 周期 3
- @1<1,1,4> = 周期 4
目前,我有一个 IDescriptor 可以从另一个文件中提取 1、2、3 期间的销售额。我希望能够从期间 1、2、3 中提取成本并减去总计以获得利润。
当前的 I-Descriptor 语句是:
TRANS(SAS1,ITEM,4,'X');@1<1,1,1>+@1<1,1,2>+@1<1,1,3>
你正在寻找EXTRACT
因此,请尝试以下 loc 属性:
TRANS(SAS1,ITEM,4,'X');EXTRACT(@1,1,1,1)+EXTRACT(@1,1,1,2)+EXTRACT(@1,1,1,3)
下一个问题对我来说并不完全清楚,所以如果我做出了不正确的假设,请告诉我。
成本来自属性(字段)3 的当前文件(该字典文件所在的文件)。它与销售数据的格式相同(<1,1,1 到 3>)。在这种情况下,您需要使用@RECORD。
TRANS(SAS1,ITEM,4,'X');EXTRACT(@1,1,1,1)+EXTRACT(@1,1,1,2)+EXTRACT(@1,1,1,3);EXTRACT(@RECORD,1,1,1)+EXTRACT(@RECORD,1,1,2)+EXTRACT(@RECORD,1,1,3);@2-@3
所以,让我们分解一下:
TRANS(SAS1,ITEM,4,'X');
EXTRACT(@1,1,1,1)+EXTRACT(@1,1,1,2)+EXTRACT(@1,1,1,3);
EXTRACT(@RECORD,1,1,1)+EXTRACT(@RECORD,1,1,2)+EXTRACT(@RECORD,1,1,3);
@2-@3
丹的答案中唯一缺少的是您需要另一个 TRANS 来获取您的 COST 字段,因此 TRANS(SAS1,ITEM,3,'X');
在对 EXTRACT 进行第一次操作之后。