Mark A Matte
markamatte at hotmail.com
Fri Jul 6 15:13:41 CDT 2007
Jim, I went back and read my post since I didn't see a reference. Apparently I didn't include the SQL. Would a single delete statement with a subquery accomplish this? ************SQL************** DELETE tblTest.Section, tblTest.code FROM tblTest WHERE (((tblTest.Section)="C1") AND ((tblTest.code) Not In (SELECT tblTest1.code FROM tblTest AS tblTest1 GROUP BY tblTest1.Section, tblTest1.code HAVING (((tblTest1.Section)="B1"));))); ************SQL************** >From: Jim Lawrence <accessd at shaw.ca> >Reply-To: Access Developers discussion and problem >solving<accessd at databaseadvisors.com> >To: "'Access Developers discussion and problem >solving'"<accessd at databaseadvisors.com> >Subject: Re: [AccessD] Isolating matching and related records >Date: Fri, 06 Jul 2007 11:30:21 -0700 > >Hi A.D. Tejpal: > >Your code looks very good but some adjustments would have to be made to >make >it work in my particular context. I worked backwards, first in MS SQL where >SubQueries are available and then translated the result into Access's >compound query system. Below is the result for the record: > >First one record of each match group is created in queries 1 and 2. Then >any >missing matches are isolated in query 3 and query 4 deletes those matches. >I >am sure this code could be greatly refined but the results were needed >fast. > >query1: >SELECT DISTINCT tblRosterReportTemplate.SectionCode, >tblRosterReportTemplate.JobCode >FROM tblRosterReportTemplate >WHERE (tblRosterReportTemplate.SectionCode="C1") > >query2: >SELECT DISTINCT tblRosterReportTemplate.SectionCode, >tblRosterReportTemplate.JobCode >FROM tblRosterReportTemplate >WHERE (tblRosterReportTemplate.SectionCode="B1") > >query3: >SELECT query1.SectionCode, query1.JobCode >FROM query1 LEFT JOIN query2 >ON query1.JobCode = query2.JobCode >WHERE query2.SectionCode Is Null; > >query4: >DELETE * FROM tblRosterReportTemplate >WHERE SectionCode = query3.SectionCode' >AND JobCode = query3.JobCode; > >Thank you so much for your help > >Jim > >-----Original Message----- >From: accessd-bounces at databaseadvisors.com >[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of A.D.TEJPAL >Sent: Friday, July 06, 2007 12:51 AM >To: Access Developers discussion and problem solving >Subject: Re: [AccessD] Isolating matching and related records > >Jim, > > Delete query as given below, should get you the desired results. > >Best wishes, >A.D.Tejpal >--------------- > >======================================== >DELETE * >FROM T_Codes >WHERE IIf([Section]="C1",IIf([Code] In (SELECT Code FROM T_Codes As T1 >WHERE T1.Section = "B1"),0,1),0) > 0; >======================================== > > ----- Original Message ----- > From: Jim Lawrence > To: 'Access Developers discussion and problem solving' > Sent: Friday, July 06, 2007 08:28 > Subject: [AccessD] Isolating matching and related records > > > Hi All: > > The following question seems like a simple SQL question but I just can >not >find the appropriate answer at this minute... too many long nights. > > Given: > > 1. A table of many records, with each record having a couple fields >called >{section] and [code]. > > 2. The content of field [section] has only three possible entries of > "A1","B1" and "C1". The contents of field [code] can be any of a variety >of codes. > > 3. There will always be records for group "A1" and "C1" but not always >for >"B1" > > What SQL code would find the group where there are no matching "B1" >records and delete all the records in the "C1" group > > An example of data could be; > > 5 records of [section] = "A1", [code] = "TTR" > 4 records of [section] = "B1", [code] = "TTR" > 30 records of [section] = "C1", [code] = "TTR" > 3 records of [section] = "A1", [code] = "CYR" > 47 records of [section] = "C1", [code] = "CYR" > 5 records of [section] = "A1", [code] = "PIJ" > 4 records of [section] = "B1", [code] = "PIJ" > 30 records of [section] = "C1", [code] = "PIJ" > > After the SQL code was run all 47 records with [section] = "C1' and >[code] >= "CYR" would be gone. > > It does not seem like a difficult process but... > > MTIA > > Jim >-- >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 _________________________________________________________________ http://liveearth.msn.com