RPGLE 如何使用 SETLL 和 READE 查找键控字段的重复记录
RPGLE How to use SETLL and READE to find duplicate records for a keyed field
谁能给我一个使用 SETLL 和 READE 查找键控字段重复记录的示例。
目前我正在处理的文件有 3 个键控字段。我要在其中查找重复项的字段是序列中的第二个键。我不确定如何以自由格式对此进行编码,我在其中使用 READE 和 SETLL 来查找重复记录。
/free
read filename;
dow not %eof(filename);
SETLL (XXPART)OUTPUTWORKFILE;
IF NOT %EQUAL(OUTPUTWORKFILE);
write OUTPUTWORKFILE;
enddo;
我知道我不能只跳到第二个键控字段 (XXPART),所以我必须包括第一个键控字段 (XXPLNT)。只是不确定如何以自由形式做到这一点。也不确定我应该把读物放在哪里。
提前致谢。
我不认为你需要 reade
来做你想做的事。 setll
只要您不需要 outfile 中的任何内容,就应该足够了。请注意,您可以将复合键与 setll
.
结合使用
read filename;
dow not %eof(filename);
setll (xxplnt: xxpart) outputworkfile;
if not %equal(outputworkfile);
write outputworkfile;
endif;
read filename;
enddo;
@jmarkmurphy 有一个合理的答案,但我也认为如果可以的话,使用 SQL 会更容易。
select xxplnt, xxpart from filename
group by xxplnt, xxpart
having count(*) > 1
谁能给我一个使用 SETLL 和 READE 查找键控字段重复记录的示例。
目前我正在处理的文件有 3 个键控字段。我要在其中查找重复项的字段是序列中的第二个键。我不确定如何以自由格式对此进行编码,我在其中使用 READE 和 SETLL 来查找重复记录。
/free
read filename;
dow not %eof(filename);
SETLL (XXPART)OUTPUTWORKFILE;
IF NOT %EQUAL(OUTPUTWORKFILE);
write OUTPUTWORKFILE;
enddo;
我知道我不能只跳到第二个键控字段 (XXPART),所以我必须包括第一个键控字段 (XXPLNT)。只是不确定如何以自由形式做到这一点。也不确定我应该把读物放在哪里。
提前致谢。
我不认为你需要 reade
来做你想做的事。 setll
只要您不需要 outfile 中的任何内容,就应该足够了。请注意,您可以将复合键与 setll
.
read filename;
dow not %eof(filename);
setll (xxplnt: xxpart) outputworkfile;
if not %equal(outputworkfile);
write outputworkfile;
endif;
read filename;
enddo;
@jmarkmurphy 有一个合理的答案,但我也认为如果可以的话,使用 SQL 会更容易。
select xxplnt, xxpart from filename
group by xxplnt, xxpart
having count(*) > 1