目前我有一个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>
答案 0 :(得分:1)
您正在寻找EXTRACT
因此,请尝试以下loc属性:
TRANS(SAS1,ITEM,4,'X');EXTRACT(@1,1,1,1)+EXTRACT(@1,1,1,2)+EXTRACT(@1,1,1,3)
问题的下一部分对我来说并不完全清楚,所以如果我做出了错误的假设,请告诉我。
成本来自当前文件(此词典文件所属的文件)来自属性(字段)3。它具有与销售数据相同的格式(&lt; 1,1,1到3&gt;)。在这种情况下,您需要使用@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
答案 1 :(得分:0)
Dan的答案中唯一缺少的是你需要另一个TRANS来获得你的COST字段,因此TRANS(SAS1,ITEM,3,'X');
在对EXTRACTs的第一次操作之后。