Very nifty Allen, thank you! Unfortunately, I'm a mere user in my organization and not a programmer, so I don't have UniVerse permissions to compile programs or even run the editor.
*sigh* Alas. I hope someone else is able to utilize your program. -----Original Message----- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Allen Elwood (TW) Sent: Tuesday, August 27, 2013 3:51 PM To: U2 Users List Subject: Re: [U2] Select from one file with save-list from another file i made a relational selection program many many moons ago - i'm retired now - thanks to a crushed right hand i can only type with the left hand which goes numb quickly thanks to an elbow injury but i keep the code around and lurk on the list just in case :-) * RSELECT - Relational File Selection Utility * Usage: * RSELECT LIST1 FILENAME ATTRNBR LIST2 Version="~Ver=~7.0.10~362202866~" *#* COPY COPY.TOOLS.BP STANDARD.VARIABLES.1 (REPLACING PGM.NAME BY RSELECT, FN.NAME BY RSELECT, IO.OPEN.OPTS BY TERM.DATA:LOCK) ;*#* Copied Source Follows (06-25-03) $INCLUDE STANDARD.COMMON.VARIABLES FROM COPY.TOOLS.BP $INCLUDE STANDARD.COMMON.APP.PROGRAMS FROM COPY.TOOLS.BP $INCLUDE STANDARD.VARIABLES.END FROM COPY.TOOLS.BP PGM.NAME='RSELECT'; FN.NAME ='RSELECT' CALL IO.OPEN('TERM.DATA:LOCK',PASSWORDS) *#* *======================================================================= = GOSUB GET.OPTIONS GOSUB DETERMINE.TEMP.FILESIZE GOSUB LOAD.TEMP.FILE GOSUB CREATE.TEMP.DICT GOSUB BUILD.LIST2 GOSUB FINISH.UP STOP *======================================================================= = GET.OPTIONS: PRINT 'Enter END at any prompt to abort' PRINT PRINT 'Enter Source List Name : ':;INPUT LIST1 IF LIST1 = 'END' THEN STOP PRINT 'Enter the Selection Filename : ':;INPUT FILENAME IF FILENAME = 'END' THEN STOP PRINT 'Enter the Selection Attribute Number : ':;INPUT ATTRNBR IF ATTRNBR = 'END' THEN STOP PRINT 'Enter the Destination List Name : ':;INPUT LIST2 IF LIST2 = 'END' THEN STOP PRINT LOOP PRINT 'Continue? (Y/END)':;INPUT YORN IF YORN = 'END' THEN STOP IF YORN = 'Y' THEN EXIT REPEAT RETURN *======================================================================= = DETERMINE.TEMP.FILESIZE: MSG = 'GET.LIST ':LIST1 PERFORM MSG CAPTURING JUNK SELECTION = @SYSTEM.RETURN.CODE TBYTES = 0 LOOP WHILE READNEXT ID DO TBYTES+=LEN(ID) REPEAT TEMP.MOD = INT(TBYTES/1024) IF TEMP.MOD < 1 THEN TEMP.MOD = 5 END TEMP.NAME = 'RSELECT':PROCESS.ID MSG = 'CREATE.FILE ':TEMP.NAME:' ':TEMP.MOD PERFORM MSG CAPTURING JUNK OPEN '', TEMP.NAME TO TEMP.HANDLE ELSE PRINT 'Internal processing error';STOP OPEN 'DICT', TEMP.NAME TO TEMP.DICT ELSE PRINT 'Internal processing error';STOP RETURN *======================================================================= = LOAD.TEMP.FILE: MSG = 'GET.LIST ':LIST1 PERFORM MSG CAPTURING JUNK NADA = '' LOOP WHILE READNEXT ID DO WRITEV NADA ON TEMP.HANDLE, ID, 0 REPEAT RETURN *======================================================================= = CREATE.TEMP.DICT: DREC = '' DREC<1> = 'I' DREC<2> = 'TRANS("':TEMP.NAME:'",F':ATTRNBR:',"F0","X")' DREC<4> = 'Temporary Trans Dict' DREC<5> = '25L' WRITE DREC ON TEMP.DICT, "TRAN.DICT" DREC = '' DREC<1> = 'D' DREC<2> = ATTRNBR DREC<4> = 'Temprary Base Dict' DREC<5> = '25L' DID = "F":ATTRNBR WRITE DREC ON TEMP.DICT, DID RETURN *======================================================================= = BUILD.LIST2: PRINT 'Now creating list ':LIST2 MSG = 'SELECT ':FILENAME:' WITH TRAN.DICT GT "" USING DICT ': TEMP.NAME PERFORM MSG PERFORM 'SAVE.LIST ':LIST2 RETURN *======================================================================= = FINISH.UP: CLOSE TEMP.HANDLE CLOSE TEMP.DICT MSG = 'DELETE.FILE ':TEMP.NAME DATA 'Y' PERFORM MSG CAPTURING JUNK PRINT 'Program Completed' RETURN On 8/27/2013 1:24 PM, Hilk, Brandon wrote: > Hello! > > > > UniVerse 10.1, HP/UX, Pick. > > > > Is there a way I can build a save-list from a selection from one file > X.INFO (where the record ID is an 8 digit number) and use that list to > select from file Y.INFO (where that 8 digit number is not the record ID > but does exist as a "foreign key" elsewhere in the file). In SQL this > would be considered a join and would look something like this: > > > > select * > > from X.INFO, Y.INFO > > where X.INFO.packet.id=Y.INFO.packet.id > > and X.INFO.status='ccc'; > > > > I can run this in TCL and have it return the results I want but can't > build a save-list from it because I don't know the UniVerse/SQL syntax > to do so. > > > > So to summarize, is there a way to use a save-list built from X.INFO to > make another save-list comprised of the record ID's from Y.INFO? > > > > Thanks for any advice you can give. > > > > _______________________________________________ > U2-Users mailing list > U2-Users@listserver.u2ug.org > http://listserver.u2ug.org/mailman/listinfo/u2-users > _______________________________________________ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users _______________________________________________ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users