如何在Webfocus的数据集中排除某些组合模式?

时间:2019-05-09 22:27:32

标签: webfocus

在这里输入代码我有一个数据集,如果他/她的成绩不是“ F”,我必须摆脱他/她。在此示例中,Brian的成绩不是“ F”,因此,Brian不应出现在我的成绩中。只有杰克(Jack)应该出现,因为我要排他地“ F”级学生。

Webfocus data

我在Webfocus中使用OMITS,NE功能进行了尝试,但无法解决该问题(请单击以查看屏幕截图)。 如上所述,我只期待杰克的成绩,因为布莱恩的成绩不是“ F”。我将衷心感谢您的帮助。谢谢。

我被困在代码的最后一行:

TABLE FILE TABLE1
PRINT 
     ID
     NAME
     Grade
WHERE (ID OMITS (PRINT * from TABLE1 WHERE (Grade NE 'F')));

1 个答案:

答案 0 :(得分:0)

这是查询WF的非常复杂的方法!

这段代码,用于加载您在图像中显示的数据:

-*
-* FILE ALLOCATION
-*
FILEDEF AMDEXAM DISK amdexam.ftm (APPEND
-RUN
-*
-* MASTER TO READ AMDS EXAMPLE
-*
EX -LINES 5 EDAPUT MASTER,AMDEXAM,CV,FILE
FILENAME=AMDEXAM,  SUFFIX=FIX, SEGNAME=AMDEXAM, SEGTYPE=S0, $
  FIELD=ID    ,ALIAS=ID    ,USAGE=A5  ,ACTUAL=A5  ,$
  FIELD=NAME  ,ALIAS=NAME  ,USAGE=A10 ,ACTUAL=A10 ,$
  FIELD=GRADE ,ALIAS=GRADE ,USAGE=A1  ,ACTUAL=A1  ,$
-* 
-* LOAD FILE WITH SOME RECORDS
-* 
-WRITE AMDEXAM A1   Brian     A
-WRITE AMDEXAM A1   Brian     B
-WRITE AMDEXAM A1   Brian     B
-WRITE AMDEXAM A1   Brian     A
-WRITE AMDEXAM A1   Brian     C
-WRITE AMDEXAM A1   Brian     F
-WRITE AMDEXAM A1   Brian     F
-WRITE AMDEXAM A2   Jack      F
-WRITE AMDEXAM A2   Jack      F
-WRITE AMDEXAM A2   Mystic    B
-WRITE AMDEXAM A3   Mystic    A
-WRITE AMDEXAM A3   Mystic    C
-WRITE AMDEXAM A3   Mystic    C
-WRITE AMDEXAM A4   Joe       F
-WRITE AMDEXAM A4   Joe       F
-WRITE AMDEXAM A4   Ruben     B
-WRITE AMDEXAM A4   Ruben     A
-*

您可以尝试执行以下操作来达到您的要求:

TABLE FILE AMDEXAM 
 SUM
  COMPUTE AA/I1 = IF ((LAST NAME NE NAME AND GRADE NE 'F') OR (LAST NAME EQ NAME AND LAST AA EQ 1)) THEN 1 ELSE 0; NOPRINT
  BY ID
  BY NAME
  BY GRADE
  WHERE TOTAL AA EQ 0
  ON TABLE SET BYDISPLAY ON
END
-RUN
-EXIT

那应该给你布莱恩分数。

编辑:将动词从PRINT更改为SUM以仅获取一条记录,将NOPRINT更改为AA字段。