0

有人可以给我一个使用 SETLL 和 READE 查找键控字段的重复记录的示例。

目前我正在使用的文件有 3 个键控字段。我正在寻找重复项的字段是序列中的第二个键。我不确定如何以自由格式编码,我使用 READE 和 SETLL 来查找重复记录。

/free
read filename;              

dow not %eof(filename);     


SETLL (XXPART)OUTPUTWORKFILE; 
IF NOT %EQUAL(OUTPUTWORKFILE);
write OUTPUTWORKFILE;  
enddo;      

我知道我不能只跳到第二个键域(XXPART),所以我必须包含第一个键域(XXPLNT)。只是不确定如何以自由形式做到这一点。也不确定我应该把读物放在哪里。

提前致谢。

4

2 回答 2

5

我不认为你需要reade做你想做的事。setll只要您不需要 outfile 中的任何内容,就足够了。请注意,您可以将复合键与setll.

read filename;              
dow not %eof(filename);     
  setll (xxplnt: xxpart) outputworkfile;
  if not %equal(outputworkfile);
    write outputworkfile;
  endif;
  read filename;
enddo;
于 2018-05-04T13:22:45.273 回答
1

@jmarkmurphy 有一个合理的答案,但我也认为如果可以的话,使用 SQL 会更容易。

select xxplnt, xxpart from filename
group by xxplnt, xxpart
having count(*) > 1
于 2018-05-04T15:39:11.500 回答