× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



I have an older procedure that reads records within a file to create a character string from one of the fields (RFDTA) in the file. The resulting string is placed into various data structures, so the "position" is important.

My problem is that the file can look like this for a given RFCAT an RFSLC
RFCAT
RFSLC
RFSQ2
RFDTA (char 40)
DFAC
025
1
A25USR25CCDFIN 000NY
DFAC
025
3
000STD NW25 NFRB
DFAC
025
4
7UPC FOB
DFAC
025
6
000000
DFAC
025
7
00001 N 00000000000 N0
DFAC
025
8
01 Y000N 1111100


The RPG procedure handles this by using a dimensional array, where RFSQ2 is the element. So if a sequence number is not present, it is still accounted for with 40 blanks:

D rfd 40a Dim(20) Inz
D rfdata 1 800a Inz

*-------------------------------------------------------------------------

setll (incat:inslc) referrr;
dou %eof(refer1);
reade (incat:inslc) referrr;
if not %eof(refer1);
if rfsq2 > 20;
iter;
endif;
rfd(rfsq2) = rfdta;
endif;
enddo;

Return rfdata;

I created an SQL statement that works only when all sequence numbers exist.
SELECT rfslc, LISTAGG(RFDTA) WITHIN GROUP(ORDER BY RFCAT, RFSLC, RFSQ2) AS RFDATA
FROM REFERRF
WHERE rfcat=:incat and rfslc=:inslc
GROUP BY RFCAT, RFSLC

Is there a way with SQL to accomplish the same thing without having to read a row at a time?
[Logo]<https://www.totalbizfulfillment.com/> Greg Wilburn
Director of IT
301.895.3792 ext. 1231
301.895.3895 direct
gwilburn@xxxxxxxxxxxxxxxxxxxxxxx<mailto:gwilburn@xxxxxxxxxxxxxxxxxxxxxxx>
1 Corporate Dr
Grantsville, MD 21536
www.totalbizfulfillment.com<http://www.totalbizfulfillment.com>

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.