ok, I was fibbing a little... i had an index on jobline but none on entry... Fixed that now (winking at the original developer)
yes i will want these records grouped by machine. ----- Original Message ----- From: "Neven MacEwan" <[EMAIL PROTECTED]> To: "Multiple recipients of list delphi" <[EMAIL PROTECTED]> Sent: Thursday, July 31, 2003 11:04 AM Subject: Re: [DUG]: Interbase SQL > T > > Well I'd index those fields as they are a primary selection criteria > (This is an oft overlooked part of SQL DB Management because they > will do virtually anything but the worst case as a linear search) also > as your datasize increases the date columns will define your working > 'window' > > All these 'Sums' do you want them grouped by MachineID/ Ref > > N > > ----- Original Message ----- > From: "Tracey Maule" <[EMAIL PROTECTED]> > To: "Multiple recipients of list delphi" <[EMAIL PROTECTED]> > Sent: Thursday, July 31, 2003 10:51 AM > Subject: Re: [DUG]: Interbase SQL > > > > > > > > is JOBLINE.Job Date ENTRY.EntryDate Indexed? > > > Also you want all 'all entries' and 'all Job Lines'? > > > > > no > > and no > > > > The data i actually need is: > > sum(entry.quantity) as manhours > > sum(entry.endquantity - entry.startquantity) as machinehours > > sum(entry.fuel) as fuel > > sum(jobline.joblinecost) as jobcost > > machine.ref > > machine.machineid > > > > where companyid = companyid > > and dates in Daterange > > > > > > > > SELECT > > > 'JobLine', JOBLINE.JobDate, JOBLINE.JobLineID, Job.MachineID > > > FROM > > > JOBLINE JOIN > > > JOB ON JOBLINE.JobID = JOB.JobID > > > WHERE > > > JOBLINE.JobDate BETWEEN Date1 AND Date2 > > > UNION > > > SELECT > > > 'Entry', ENTRY.EntryDate, ENTRY.EntryID, ENTRY.MachineID, > > > FROM > > > ENTRY > > > WHERE > > > ENTRY.EntryDate BETWEEN Date1 AND Date2 > > > > > > ----- Original Message ----- > > > From: "Tracey Maule" <[EMAIL PROTECTED]> > > > To: "Multiple recipients of list delphi" <[EMAIL PROTECTED]> > > > Sent: Thursday, July 31, 2003 9:37 AM > > > Subject: [DUG]: Interbase SQL > > > > > > > > > The usual topic im afraid... > > > I have the following tables: > > > > > > MACHINE > > > machineid > > > > > > ENTRY > > > EntryID > > > MachineID > > > EntryDate > > > Quantity > > > StartQuantity > > > EndQuantity > > > > > > JOB > > > JobID > > > MachineID > > > > > > JOBLINE > > > JoblineID > > > JobID > > > JobDate > > > JobLineCost > > > > > > I need to select all entries between 2 dates, and all joblines between 2 > > > dates, for every machine where there is an entry in one or the other. > > > > > > rather than selecting all machines, then doing individual selects from > > each > > > table for each machine, it was suggested that i could select the > records, > > > put them into temp tables to minimize the query count. > > > Something like : > > > > > > Select stuff > > > from table > > > > > > Outer join machine > > > where date_conditions > > > into temptable > > > > > > > > > However I am told Interbase (Firebird1.0) does not do temp-tables. > > > > > > At this point it looks like my best choice is: > > > > > > Select ID from machine where company = :company > > > > > > Then > > > > > > (while not eof) > > > > > > Select records from entry > > > > > > where dateconditions = blah > > > > > > and machineid = query1MachineID > > > > > > And then > > > > > > Select records from jobline > > > > > > Join job on blah > > > > > > Where dateconditions = blah > > > > > > And machineid = query1machineid > > > > > > (eof) > > > > > > > > > > > > This doesnt seem very efficient to me. Can any of the SQL gurus come up > > > with a more efficient way of doing this? > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Tracey > > > Software Developer / Web Master > > > Logis > > > [EMAIL PROTECTED] > > > (025) 213-1065 > > > > > > > > > > -------------------------------------------------------------------------- > > - > > > New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED] > > > Website: http://www.delphi.org.nz > > > To UnSub, send email to: [EMAIL PROTECTED] > > > with body of "unsubscribe delphi" > > > Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/ > > > > > > > -------------------------------------------------------------------------- > - > > New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED] > > Website: http://www.delphi.org.nz > > To UnSub, send email to: [EMAIL PROTECTED] > > with body of "unsubscribe delphi" > > Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/ > > > > > > -------------------------------------------------------------------------- - > New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED] > Website: http://www.delphi.org.nz > To UnSub, send email to: [EMAIL PROTECTED] > with body of "unsubscribe delphi" > Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/ > --------------------------------------------------------------------------- New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED] Website: http://www.delphi.org.nz To UnSub, send email to: [EMAIL PROTECTED] with body of "unsubscribe delphi" Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/