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.