Это очень сложный способ запроса 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
Это должно дать вам оценки Брайана.
EDIT: глагол изменен с PRINT на SUM, чтобы получить только одну запись и NOPRINT в поле AA.