[AccessD] Calculate Pool Times

Scott Marcus marcus at tsstech.com
Fri Apr 14 07:29:20 CDT 2006


I have a solution that uses only SQL statements...

Tables needed:

Discount
========
 DiscountID           AutoNumber
 Description          Text
 StartDateTime        Date/time
 EndDateTime          Date/Time
 RatePerHour          Currency   (amount to discount off standard rate)

TableTime
=========
 TableTimeID          Autonumber
 Person               Text
 StartDateTime        Date/Time
 EndDateTime          Date/Time

Queries:

StandardRate
============

SELECT TableTimeID,
       Person,
       "Standard Time" AS Description,
       StartDateTime,
       EndDateTime,
       3 AS RatePerHour,
       DateDiff("n",StartDateTime,EndDateTime)/60 AS Hours
       RatePerHour*Hours AS Amount
FROM TableTime

PlayerDiscounts
===============

SELECT T.TableTimeID,
       T.Person,
       D.Description,
       IIF(D.StartDateTime<T.StartDateTime,
           T.StartDateTime,D.StartDateTime) AS Start,
       IIF(D.EndDateTime<T.EndDateTime,
           D.EndDateTime,T.EndDateTime) AS End,
       D.RatePerHour,
       DateDiff("n", IIf(D.StartDateTime<T.StartDateTime,
                         T.StartDateTime,
                         D.StartDateTime),
                     IIf(D.EndDateTime<T.EndDateTime,
                         D.[EndDateTime],
                         T.EndDateTime))/60 AS Hours,
       RatePerHour*Hours AS Amount
FROM TableTime T, Discount D
WHERE (D.StartDateTime<=T.EndDateTime) AND
      (D.EndDateTime>=T.StartDateTime)
ORDER BY T.TableTimeID

PlayerCharges
=============

SELECT * FROM StandardRate
UNION
SELECT * FROM PlayerDiscounts

TotalCharges
============

SELECT TableTimeID,
       Person,
       Sum(Amount) AS Total
FROM PlayerCharges
GROUP BY TableTimeID, Person

Scott Marcus
Computer Programmer
TSS Technologies Inc.
www.tss.com
513-772-7000 x1113

-----Original Message-----
From: Mark A Matte [mailto:markamatte at hotmail.com] 
Sent: Thursday, April 13, 2006 1:46 PM
To: accessd at databaseadvisors.com
Subject: [AccessD] Calculate Pool Times

Hello All,

I need some help with my logic here.  The app will track how long some
one 
is on a pool table and charge accordingly.  I want to have the specials 
calculate automatically.  For example:  Someone shoots from 16:00 to
23:00.

The normal rate is 3dph.  From 17:00 to 19:00 is free and from 20:00 to 
22:00 is 1.5dph.  These are only the specials today...there might only
be 
one tomorrow.

I started with a specials table that would have the day,start,end, and
rate.

  Each special is its own record.  In the end it would charge:

16:00-16:59 3$
17:00-18:59 0$
19:00-19:59 3$
20:00-21:59 1.5$
22:00-23:00 3$

I guess I could loop through minute by minute and compare the time to
the 
each special... and sum that way...but that didn't seem right?

Any ideas/suggestions on an approach would be greatly appreciated.

Thanks,

Mark A. Matte


-- 
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
 





NOTICE:  This electronic mail transmission is for the use of the named individual or entity to which it is directed and may contain information that is privileged or confidential.  If you are not the intended recipient, any disclosure, copying, distribution or use of the contents of any information contained herein is prohibited.  If you have received this electronic mail transmission in error, delete it from your system without copying or forwarding it, and notify the sender of the error by replying via email or calling TSS Technologies at (513) 772-7000, so that our address record can be corrected.  Any information included in this email is provided on an “as is” and “where as” basis, and TSS Technologies makes no representations or warranties of any kind with respect to the completeness or accuracy of the information contained in this email. 



More information about the AccessD mailing list