wow that query takes forever...(26219ms)
but it still doesnt bring back all machines.  I have one machine which has
no entries in entry, but has values in jobline.
I need to see these machines as well.

----- Original Message -----
From: "Neven MacEwan" <[EMAIL PROTECTED]>
To: "Multiple recipients of list delphi" <[EMAIL PROTECTED]>
Sent: Thursday, July 31, 2003 12:11 PM
Subject: Re: [DUG]: Interbase SQL


> Tracey
>
> I'm not a IB expert but what you want can be got by
> (also your most you could probably do with adding date to
> the FK Index for Entry.MachineID)
>
> SELECT
>   MACHINE.MachineID,
>   SUM(ENTRY.Quantity) as manhours,
>   SUM(ENTRY.Endquantity - ENTRY.Startquantity) as machinehours,
>   SUM(ENTRY.Fuel) as fuel,
>   (SELECT
>      SUM(JOBLINE .JoblineCost)
>   FROM
>      JOBLINE z JOIN
>      JOB y ON z.JobID = y.JobID
>   WHERE
>      z.JobDate BETWEEN Date1 AND Date2 AND
>      y.MachineID = MACHINE.MachineID) as jobcost
> FROM
>     MACHINE LEFT  JOIN
>     ENTRY ON ENTRY.MachineID = MACHINE.MachineID
> WHERE
>     ENTRY.EntryDate BETWEEN Date1 AND Date2
> GROUP BY
>    MACHINE.MachineID
>
> > > > machine.ref
> > > > machine.machineid
>
>
>
>
> ----- Original Message -----
> From: "Tracey Maule" <[EMAIL PROTECTED]>
> To: "Multiple recipients of list delphi" <[EMAIL PROTECTED]>
> Sent: Thursday, July 31, 2003 11:38 AM
> Subject: Re: [DUG]: Interbase SQL
>
>
> > 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/
> >
> >
>
> --------------------------------------------------------------------------
-
>     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/

Reply via email to