>>lcSQL = "select list_index.name as projectname," >>lcSQL = lcSQL + " list_members.*," >>lcSQL = lcSQL + " sites.name as businessname, " >>lcSQL = lcSQL + " alltrim(sites.address) as businessaddress," >>lcSQL = lcSQL + " alltrim(sites.city) + ' ' + alltrim(sites.state) + ' ' + sites.zip as businesscity," >>lcSQL = lcSQL + " sites.*, " >>lcSQL = lcSQL + " sites2people.*," >>lcSQL = lcSQL + " alltrim(people.address) as personaddress," >>lcSQL = lcSQL + " alltrim(people.city) + ' ' + alltrim(people.state) + ' ' + people.zip as personcity," >>lcSQL = lcSQL + " people.*, " >>lcSQL = lcSQL + " BuildMemo(sites.site_id,'notes_consultant') as notes_consultant " >>lcSQL = lcSQL + " from list_index" >>lcSQL = lcSQL + " inner join list_members on list_index.list_id = list_members.list_id and list_members.member_type = 'site'" >>lcSQL = lcSQL + " inner join sites on list_members.member_id = sites.site_id " >>lcSQL = lcSQL + " inner join sites2people on sites.site_id=sites2people.site_id and sites2people.principle=.t." >>lcSQL = lcSQL + " inner join people on sites2people.person_id = people.person_id" >>lcSQL = lcSQL + " order by list_index.name, sites.name, people.lastname" >>>>The BuildMemo() function creates the string made up of the various memo records that were in the MEMOS table. There are of course CRLFs embedded in the string.