Charlotte Foust
cfoust at infostatsystems.com
Tue Feb 21 10:32:32 CST 2006
That's the way the query engine in Access handles the inline query under the covers. Your problem isn't with aliasing the tables (although I would strongly suggest losing the spaces in your aliases). It may work for you if you create the query with the parens and then save it but don't open it in SQL view again, or if you do, replace the brackets and period with parens again before saving. Access 97 was particularly fussy about this. You had to use parens because it would not recognize the square brackets when entered by the user, even though the query engine requires them. Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Chris Foote (Spike) Sent: Monday, February 20, 2006 12:52 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Nested query There's something not quite right about it as well John. The A2003 query grid keeps replacing the round brackets surrounding the sub-query with square brackets. Odd! I'm trying to run this query against mySQL using phpMyAdmin and it does not like it one bit. I think I need to read up on aliasing tables a bit more. I wonder if I should move sideways onto the SQL list? Regards! Chris F -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of DJK(John) Robinson Sent: 20 February 2006 20:39 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Nested query That's interesting, version-wise. It was OK in XP (2002). J -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Chris Foote (Spike) Sent: 20 February 2006 20:16 To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Nested query Hi John! I could not get your suggestion to work in A97, but in A2003 (with a minor change) it works as good as gold. What I ended up with is: <SQL> SELECT tblClubs.fldIDClub, tblClubs.fldClubCode, tblClubs.fldClubShort FROM (SELECT Max(tblClubs1.fldIDClub) AS [Highest ID] FROM tblClubs tblClubs1 GROUP BY tblClubs1.fldClubCode) AS LatestClubRecs LEFT JOIN tblClubs ON LatestClubRecs.[Highest ID] = tblClubs.fldIDClub; </sql> Notice that I aliased "tblClubs" as "tblClubs1" in the second "FROM". Without this Access complained about the same table being referred to twice. Thanks again for your help John! Best regards Chris F > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com]On Behalf Of DJK(John) > Robinson > Sent: Monday, February 20, 2006 1:19 PM > To: 'Access Developers discussion and problem solving' > Subject: Re: [AccessD] Nested query > > > Hi Chris > > A rare occasion that I'm up to date with AccessD reading - > displacement activity for evil tax calculations! > > Anyway, how about: > > SELECT tblClubs.fldIDClubs, tblClubs.fldClubCode, tblClubs.fldClubName > FROM (SELECT Max(tblClubs.fldIDClubs) AS [Highest ID] FROM tblClubs > GROUP BY tblClubs.fldClubCode) AS LatestClubRecs LEFT JOIN tblClubs ON > LatestClubRecs.[Highest ID] = tblClubs.fldIDClubs; > > HTH > John > > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Foote, > Chris > Sent: 20 February 2006 12:45 > To: 'Access Developers discussion and problem solving' > Subject: [AccessD] Nested query > > > Good day! > > I'm having problems "nesting" a query within another query. > > My (simplified) scenario is as follows: > > I have a table (tblClubs) that has three fields: fldIDClubs, > fldClubCode, and fldClubName. > > fldIDClubs is an AutoNumbered field, the other two are text. > > In my table I currently have the following four records: > > | fldIDClubs | fldClubCode | fldClubName | > |------------|-------------|-------------| > | 1 | WAL | Walton | > | 2 | WAL | Still Walton| > | 3 | WEY | Weybridge | > | 4 | OXU | Oxford Uni. | > > > What I want to do, is to return the records with the highest IDClub > number per ClubCode ie: > > | fldIDClubs | fldClubCode | fldClubName | > |------------|-------------|-------------| > | 2 | WAL | Still Walton| > | 3 | WEY | Weybridge | > | 4 | OXU | Oxford Uni. | > > I can do this in two steps, by creating a query that selects MAX > IDClubs and GROUP BYs ClubCode (SQL below) > > <SQL> > SELECT Max(tblClubs.fldIDClubs) AS [Highest ID] FROM tblClubs GROUP BY > tblClubs.fldClubCode; </SQL> > > And then using that query in another query with a LEFT JOIN on the > original table (SQL below) > > <SQL> > SELECT tblClubs.fldIDClubs, tblClubs.fldClubCode, tblClubs.fldClubName > FROM qryLatestClubRecs LEFT JOIN tblClubs ON > qryLatestClubRecs.[Highest ID] = tblClubs.fldIDClubs; </SQL> > > But, I need to do this all in one query. I'm using Access as a tool to > develop SQL to be used with mySQL in a PHP web page. > > Any suggestions gratefully received. > > TIA! > > Chris Foote -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com