|
If I have these three tables:
CREATE TABLE ROB/CMAST (JOINFLD01 CHAR (5 ) NOT NULL WITH DEFAULT,
DATAFLD01 CHAR (10 ) NOT NULL WITH DEFAULT)
CREATE TABLE ROB/CRMAST (JOINFLD01 CHAR ( 5) NOT NULL WITH DEFAULT,
JOINDFLD02 CHAR (2 ) NOT NULL WITH DEFAULT, DATAFLD02 CHAR (20 )
NOT NULL WITH DEFAULT)
CREATE TABLE ROB/CNMAST (JOINDFLD02 CHAR ( 2) NOT NULL WITH
DEFAULT, DATAFLD03 CHAR (30 ) NOT NULL WITH DEFAULT)
With this data:
INSERT INTO ROB/CMAST VALUES('A', 'TEST')
1 rows inserted in CMAST in ROB.
INSERT INTO ROB/CRMAST VALUES('A', 'B', 'ALPHA')
1 rows inserted in CRMAST in ROB.
INSERT INTO ROB/CNMAST VALUES('B', 'BRAVO')
1 rows inserted in CNMAST in ROB.
I can do this:
SELECT CMAST.JOINFLD01, CMAST.DATAFLD01,
CRMAST.JOINDFLD02, CRMAST.DATAFLD02,
CNMAST.DATAFLD03
FROM ( CMAST
JOIN CRMAST ON CMAST.JOINFLD01=CRMAST.JOINFLD01)
JOIN CNMAST ON CRMAST.JOINDFLD02=CNMAST.JOINDFLD02
ORDER BY CMAST.DATAFLD01, CRMAST.DATAFLD02
JOINFLD01 DATAFLD01 JOINDFLD02 DATAFLD02 DATAFLD03
A TEST B ALPHA BRAVO
Now, I could create a logical file, (but without the sort) with this:
CREATE VIEW ROB/CVIEW
(JOINFLD01, DATAFLD01, JOINDFLD02, DATAFLD02, DATAFLD03)
AS
SELECT CMAST.JOINFLD01, CMAST.DATAFLD01,
CRMAST.JOINDFLD02, CRMAST.DATAFLD02,
CNMAST.DATAFLD03
FROM ( CMAST
JOIN CRMAST ON CMAST.JOINFLD01=CRMAST.JOINFLD01)
JOIN CNMAST ON CRMAST.JOINDFLD02=CNMAST.JOINDFLD02
View CVIEW created in ROB.
Then my queries would be as simple as:
SELECT JOINFLD01, DATAFLD01,
JOINDFLD02, DATAFLD02,
DATAFLD03
FROM CVIEW
ORDER BY DATAFLD01, DATAFLD02
It would be sweet if it allowed:
CREATE VIEW ROB/CVIEW
(JOINFLD01, DATAFLD01, JOINDFLD02, DATAFLD02, DATAFLD03)
AS
SELECT CMAST.JOINFLD01, CMAST.DATAFLD01,
CRMAST.JOINDFLD02, CRMAST.DATAFLD02,
CNMAST.DATAFLD03
FROM ( CMAST
JOIN CRMAST ON CMAST.JOINFLD01=CRMAST.JOINFLD01)
JOIN CNMAST ON CRMAST.JOINDFLD02=CNMAST.JOINDFLD02
ORDER BY CMAST.DATAFLD01, CRMAST.DATAFLD02
But SQL insists on storing the indexes seperate from the data, (except for
primary keys). I suppose you could run the statements a few times under
debug to see what, if any, indexes you should build.
And since this is a RPG list, (and not MIDRANGE-L) let's stick the word
RPG in here. You do know how to process a cursor with imbedded SQL, eh?
If not, samples are available upon request.
Rob Berendt
--
"They that can give up essential liberty to obtain a little temporary
safety deserve neither liberty nor safety."
Benjamin Franklin
WyvernGod@xxxxxxx
Sent by: rpg400-l-bounces@xxxxxxxxxxxx
03/17/2003 09:35 AM
Please respond to RPG programming on the AS400 / iSeries
To: rpg400-l@xxxxxxxxxxxx
cc:
Fax to:
Subject: keys on 2 joined files?
Hello new guy here with a migraine starting problem
OK here is my problem.. i need to have a logical of 3 joined files ... the
contract master, client relation master, and the client master. the
problem
is the contract and client master bother have something i need to sort
with.
In contract i need the company code and employee location, then the client
name from client master, then the policy number from contract. every thing
i
try comes back in error and suggestions on how I can do this? I'm trying
to
have these come out by name but in order for the program to work they myst
also be sorted by the employee location.
Thanks,
Chris
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.