如果计数超过5,如何仅显示结果

时间:2019-06-03 15:42:16

标签: openedge progress-4gl

是否只能显示在相同的客户编号出现3次以上的结果。

我尝试使用一个变量(count = count + 1)。但它计算所有结果。

      icount = kcount + 1.
   display
cust-name cust-num state count

Cust Num Name   State   Count
1001     Apple  NH  1
1001     Apple  NH  2
1001     Apple  NH  3
1002     Orange BD  6
1002     Orange BD  7
1002     Orange BD  8
1002     Orange BD  9

Expected            

Cust Num    Name    State   Count
1001            Apple   NH  1
1002            Orange  BD  2

1 个答案:

答案 0 :(得分:2)

好吧,首先您可能需要一个像这样的临时表:

DEFINE TEMP-TABLE ttCust LIKE customer
    FIELD count AS INTEGER.

然后,删除您发布的代码并添加以下代码:

FIND FIRST ttCust WHERE ttCust.cust-num = customer.cust-num NO-ERROR.
IF NOT AVAILABLE ttCust then DO:
   CREATE ttCust.
   BUFFER-COPY customer TO ttCust. /* Copies the whole record to your temp-table */
END.
ASSIGN ttCust.count = ttCust.count + 1.

在常规FOR EACH客户的END之后,添加以下内容:

FOR EACH ttCust where ttCust.count >= 3:
    DISPLAY ttCust.cust-num ttCust.name ttCust.state ttCust.count.
END.

希望这会有所帮助。