Pete Phillipps
pete at vftt.co.uk
Sun Dec 14 08:57:59 CST 2008
Hi Gustav, Genius, that works perfect! Thanks to everyone for their help, wasn't actually sure if it was gonna be possible to do using a query. Pete -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock Sent: 14 December 2008 09:05 To: accessd at databaseadvisors.com Subject: Re: [AccessD] SQL help Hi Pete This can be achieved with a Cartesian join and a single subquery to pick the comments like this: PARAMETERS CustomerID Long; SELECT tblTable1.*, tblTable3.CusID, tblTable3.CusName, (Select Comment From tblTable2 As T Where T.CusID=tblTable3.CusID And T.ConID=tblTable1.ConID) AS Comment FROM tblTable1, tblTable3 WHERE tblTable3.CusID=[CustomerID] AND tblTable1.Req=True; ConID Desc Req CusID CusName Comment 1 A1 Yes 1 Fred 2 A2 Yes 1 Fred Yes 5 A5 Yes 1 Fred 1 A1 Yes 2 Daphne Me 2 A2 Yes 2 Daphne Word 5 A5 Yes 2 Daphne 1 A1 Yes 3 Scooby 2 A2 Yes 3 Scooby 5 A5 Yes 3 Scooby /gustav >>> pete at vftt.co.uk 13-12-2008 20:50 >>> Hi Everyone, I am trying to get some data from the following tables into a list. The basics of the tables are shown below: TABLE 1 ConID Desc Req 1 A1 Yes 2 A2 Yes 3 A3 No 4 A3 No 5 A5 Yes TABLE 2 CusID ConID Comment 1 2 Yes 1 3 Yep 2 1 Me 2 2 Word TABLE 3 CusID Name 1 Fred 2 Daphne 3 Scooby What I want is to select a customer from table 3 and get a list of all items from table 1 where Req is Yes, along with any matching comment from table 2 for that customer (if there are any), like the following examples: ConID Desc Req CusID Comment 1 A1 Yes 1 2 A2 Yes 1 Yes 5 A5 Yes 1 ConID Desc Req CusID Comment 1 A1 Yes 2 Me 2 A2 Yes 2 Word 5 A5 Yes 2 ConID Desc Req CusID Comment 1 A1 Yes 3 2 A2 Yes 3 5 A5 Yes 3 What I can't do is get a SQL join that will bring up the results like that. I've tried the following: SELECT Table1.ConID, Table1.Desc, Table1.Req, Table2.CusID, Table2.Comment FROM Table2 RIGHT JOIN Table1 ON Table2.ConID = Table1.ConID WHERE (((Table1.Req)<>0) AND ((Table2.CusID)=1)) ORDER BY Table1.ConID, Table2.CusID; But that just produces (for customer 1) the following: ConID Desc Req CusID Comment 2 A2 Yes 1 Yes How can I construct the SQL to produce the result as required? Pete -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com No virus found in this incoming message. Checked by AVG - http://www.avg.com Version: 8.0.176 / Virus Database: 270.9.17/1846 - Release Date: 12/12/2008 18:59