James B.

You might find the following article helpful 
http://en.wikipedia.org/wiki/Join_%28SQL%29

 
Jim Bentley
American Celiac Society
[email protected]
tel: 1-504-737-3293


>________________________________
> From: Jim Belisle <[email protected]>
>To: RBASE-L Mailing List <[email protected]> 
>Sent: Friday, March 16, 2012 10:42 AM
>Subject: [RBASE-L] - Re: Exploding BOM
> 
>JAMES,
>
>
>
>I have read some on the OUTER JOINS and INNER JOINS but still do not
>understand how to do them.
>
>I will add that to the list of code I need to study.
>
>
>
>James Belisle
>
>
>
>Making Information Systems People Friendly Since 1990
>
>
>
>
>
>________________________________
>
>From: [email protected] [mailto:[email protected]] On Behalf Of James
>Bentley
>Sent: Friday, March 16, 2012 10:37 AM
>To: RBASE-L Mailing List
>Subject: [RBASE-L] - Re: Exploding BOM
>
>
>
>Here is the definition of a view illustrating  nested joins from my
>production address database
>
>SET ERROR MESSAGES 677 OFF
>DROP VIEW RptVuMbrDtlDp
>SET ERROR MESSAGES 677 ON
>--
>CREATE VIEW RptVuMbrDtlDp
>(FChrLastName,LastNameSortSeq,FirstName,MiddleName,+
>LastName,FullNameLFM,MbrNumber,ChpNbrPfxWLtr,OrgChapLit,OrgChapLtrNbr,+
>Salutation,PrsnTitle,DearBroGreet,NickName,SigOtherName,Birthday,Initiat
>ed,+
>HighSchoolClassOf,HighSchoolName,CurHomeAudAction,CurHomeAudDate,+
>CurHomeAudTime,CurWorkAudAction,CurWorkAudDate,CurWorkAudTime,DateOfDeat
>h,+
>AcademicRecCnt,MbrStatus,RegisterChgDate,MailStatus,MAdrSource,FaceBookL
>it,+
>LinkedInLit,HAdrSource,HPhoneNbr,HCellNbr,HExtraAdrLine,HMainAdrLine,+
>HCityStateZip,HCountry,HomeChgDate,WAdrSource,WPhoneNbr,WFaxNbr,JobTitle
>,+
>CpyName,WExtraAdrLine,WMainAdrLine,WCityStateZip,WCountry,WorkChgDate,+
>MbrCurEMailAdr,MbrAltEMailAdr,DegreeList,FathersNameLFM,EstAge) +
>AS SELECT FChrLastName,LastNameSortSeq,FirstName,MiddleName,LastName,+
>FullNameLFM,MbrNumber,ChpNbrPfxWLtr,(IFLT(MbrNumber,0,'Org
>Chapter:',NULL)),+
>(IFLT(MbrNumber,0,ChpNbrWLtr,NULL)),Salutation,PrsnTitle,DearBroGreet,+
>NickName,SigOtherName,Birthday,Initiated,HighSchoolClassOf,HighSchoolNam
>e,+
>CurHomeAudAction,CurHomeAudDate,CurHomeAudTime,CurWorkAudAction,+
>CurWorkAudDate,CurWorkAudTime,DateOfDeath,AcademicRecCnt,MbrStatus,+
>RegisterChgDate,MailStatus,MAdrSource,(SSUB('NO,Yes',1+FaceBookRecCnt)),
>+
>(SSUB('NO,Yes',1+LinkedInRecCnt)),HAdrSource,HPhoneNbr,HCellNbr,+
>HExtraAdrLine,HMainAdrLine,(IFEXISTS(HCity,HCity+CHAR(32),NULL)+ +
>IFNULL(HStateUSPSCode,NULL,IFEQ(HStateUSPSCode,(CHAR(90)+ +
>CHAR(70)),NULL,HStateUSPSCode+ CHAR(32)))+ +
>IFEXISTS(HUSPSZipCode,HUSPSZipCode,NULL)),HCountry,HomeChgDate,WAdrSourc
>e,+
>WPhoneNbr,WFaxNbr,JobTitle,CpyName,WExtraAdrLine,WMainAdrLine,+
>(IFEXISTS(WCity,WCity+CHAR(32),NULL)+ IFNULL(WStateUSPSCode,NULL,+
>IFEQ(WStateUSPSCode,(CHAR(90)+ CHAR(70)),NULL,WStateUSPSCode+CHAR(32)))+
>+
>IFEXISTS(WUSPSZipCode,WUSPSZipCode,NULL)),WCountry,WorkChgDate,+
>MbrCurEMailAdr,MbrAltEMailAdr,DegreeList,D.DadFullNameLFM,+
>(FORMAT(IFNULL(DeathYear,INT((.#DATE - IFEXISTS(Birthday,Birthday,+
>IFEXISTS(Initiated,ADDYR(Initiated,-19),.#DATE)))/365.25),DeathYear - +
>IYR4(Birthday)),AgeFmtMask)) FROM ((((((RegisterOfMbrs R LEFT OUTER +
>JOIN MbrCurHomeAdr H ON R.MbrNumber=H.MbrNumber) J1 LEFT OUTER +
>JOIN MbrCurWorkAdr W ON J1.MbrNumber=W.MbrNumber) J2 LEFT OUTER +
>JOIN MbrCurEmailInfo E ON J2.MbrNumber=E.MbrNumber) J3 LEFT OUTER +
>JOIN MbrAltEmailInfo A ON J3.MbrNumber=A.MbrNumber) J4 LEFT OUTER +
>JOIN AcademicAsList B ON J4.MbrNumber=B.MbrNumber) J5 INNER +
>JOIN DirHighSchools S ON J5.HighSchoolNbr=S.HighSchoolNbr) J6 LEFT OUTER
>+
>JOIN MbrFathersInfo D ON J6.MbrNumber = D.MbrNumber
>
>--
>COMMENT ON VIEW RptVuMbrDtlDp IS 'RptVu Member details (duplex print
>version)'
>RETURN                                                            
>
>
>
>
>
>Jim Bentley
>American Celiac Society
>[email protected]
>tel: 1-504-737-3293
>
>________________________________
>
>From: Victor Timmons <[email protected]>
>To: RBASE-L Mailing List <[email protected]> 
>Sent: Thursday, March 15, 2012 11:38 PM
>Subject: [RBASE-L] - Re: Exploding BOM
>
>
>
>
>
>I would like to see this in practice.
>
>On Thu, Mar 15, 2012 at 2:27 PM, James Bentley <
>[email protected]> wrote:
>
>You can also have multiple levels of nested INNER JOINS and OUTER JOINS.
>
>See Latest documentation under JOINS topic. 
>
>
>Jim Bentley
>American Celiac Society
>[email protected]
>tel: 1-504-737-3293
>
>________________________________
>
>From: Dan Goldberg <[email protected]>
>To: RBASE-L Mailing List <[email protected]> 
>Sent: Thursday, March 15, 2012 1:12 PM
>
>
>Subject: [RBASE-L] - Re: Exploding BOM
>
>
>You are correct. I am thinking of the Celko's nested sets is what is not
>
>possible.
>
>Dan
>
>
>
>-----Original Message----- 
>From: Albert Berry
>Sent: Thursday, March 15, 2012 10:48 AM
>To: RBASE-L Mailing List
>Subject: [RBASE-L] - Re: Exploding BOM
>
>That's not quite true Dan, you can join one table to another. Select
>ParentID from Contacts t1, left outer join ChildID from Contacts t2
>where t1.ParentID = t2.ParentID.
>
>Cannot try it right now - my system just ate my R:Base but I have done
>this sort of thing in the past.
>Albert
>
>On 15/03/2012 11:33 AM, Dan Goldberg wrote:
>> The problem is rbase cannot join tables to itself and does not recurse
>> itself.. That is why you have to use nested cursors.
>
>> Dan Goldberg
>> *From:* Ben Petersen <mailto:[email protected]>
>> *Sent:* Thursday, March 15, 2012 10:18 AM
>> *To:* RBASE-L Mailing List <mailto:[email protected]>
>> *Subject:* [RBASE-L] - Re: Exploding BOM
>> I looked a little further, this link is much better with examples and
>> code.
>>
>> http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/
>>
>>
>>
>> On Thu, Mar 15, 2012 at 9:36 AM, Ben Petersen <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>>    Karen,
>>
>>    Take a look a "nested sets".
>>
>>    http://en.wikipedia.org/wiki/Nested_set_model
>>    http://www.sqlteam.com/article/more-trees-hierarchies-in-sql
>>
>>    It takes a minute or two to wrap your head around, but is an
>>    elegant solution (I think) to what you're proposing -- with
>>    unlimited levels. No cursors, but could be write intensive if that
>>    is a concern, though I wouldn't imagine any more than a cursor
>loop.
>>
>>    Ben
>>
>>
>>
>>
>>
>>    On Thu, Mar 15, 2012 at 8:55 AM, <[email protected]
>>    <mailto:[email protected]>> wrote:
>>
>>        Dan:  That's the way I was going to go, a definite number of
>>        cursors.  I feel
>>        better knowing that at least one person did it in that
>>        manner!  I'll give it a while
>>        and if no one has code for unlimited levels, then I'll just go
>>        with that.  Thanks!
>>
>>        Karen
>>
>>
>>        In a message dated 3/15/2012 10:44:55 AM Central Daylight
>>        Time, [email protected] <mailto:[email protected]>
>writes:
>>>
>>>        I use cursors. I just set up for expected level of boms that
>>>        we could possibly imagine using. We only go to a max of 6
>>>        levels down into the bom so I put in 8 cursor levels to just
>>>        in case and put an error message if it finds something below
>>>        8 levels so I can add more someday.
>>>
>>>        I know Rbase does not support celko's nested boms so I use
>>>        cursors instead.
>>>
>>>        Dan
>>>
>>>
>>>
>>
>
>
>
>
>
>
>
>
>
>
>
>

Reply via email to