Hi, What you request i think it can become like this :
SELECT SUM(IF(HOUR(start)>'02:00:00' AND HOUR(stop)<='08:00:00',50*sessiontime,0)+IF(HOUR(start)>'08:00:00' AND HOUR(stop)<='14:00:00',100*sessiontime,0)+IF(HOUR(start)<'14:00:00' AND HOUR(stop)<='02:00:00',150*sessiontime,0)) from YOUR_TABLE WHERE username='mehdi' AND start BETWEEN '2002-08-12' AND '2002-08-16'; ...this statement it should be work how you wish, but unfortunatelly i think this SQL don't have good result because of conditions: 'WHERE "02:00:0" < start AND stop <= "08:00:00" I suppose you want to find what is BETWEEN this HOURs.I think it's a good ideea if you use and make comparision between hours using TIME_TO_SEC() AND SEC_TO_TIME. Regards, Gelu _____________________________________________________ G.NET SOFTWARE COMPANY Permanent e-mail address : [EMAIL PROTECTED] [EMAIL PROTECTED] ----- Original Message ----- From: "Mehdi Roomi" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Friday, September 06, 2002 6:37 AM Subject: complex sql query... > Hi, > Suppose there is a sql table with the following fields and values: > +-----------------------------------------------------------------+ > |username| start | stop |sessiontime| > +--------+---------------------+----------------------+-----------+ > |mehdi | 2002-08-12 00:22:20 | 2002-08-12 00:24:20 | 120 | > +--------+---------------------+----------------------+-----------+ > |mehdi | 2002-08-13 01:10:20 | 2002-08-13 01:40:20 | 1800 | > +--------+---------------------+----------------------+-----------+ > |mehdi | 2002-08-14 08:30:20 | 2002-08-14 09:30:20 | 3600 | > +--------+---------------------+----------------------+-----------+ > |mehdi | 2002-08-15 15:22:20 | 2002-08-15 17:22:20 | 7200 | > +--------+---------------------+----------------------+-----------+ > > * I need ONE single sql query to return the following sum: > sum = 50 * T1 + 100 * T2 + 150 * T3 > where the T1,T2 & T3 are : > T1 : total sessiontimes for user 'mehdi' WHERE "02:00:0" < start AND stop > <= "08:00:00" > T2 : total sessiontimes for user 'mehdi' WHERE "08:00:0" < start AND stop > <= "14:00:00" > T3 : total sessiontimes for user 'mehdi' WHERE "14:00:0" < start AND stop > <= "02:00:00" > > for example for the above table: > T1 = 1920 > T2 = 3600 > T3 = 7200 > SUM = 50 * 1920 + 100 * 3600 + 150 * 7200 > > > * the second question is: > if we have a row like below: > +-----------------------------------------------------------------+ > |username| start | stop |sessiontime| > +--------+---------------------+----------------------+-----------+ > |mehdi | 2002-08-12 00:00:00 | 2002-08-12 10:00:00 | 36000 | > +--------+---------------------+----------------------+-----------+ > how to calculate the above sum ? > > please consider in this new row sessiontime (start - stop) lasts from T1 to > T2 and it must calculate in this way: 50 * 28800 + 100 * 7200 > > > > thanks alot > M.Roomi > [EMAIL PROTECTED] > > > > > _________________________________________________________________ > Chat with friends online, try MSN Messenger: http://messenger.msn.com > > > --------------------------------------------------------------------- > Before posting, please check: > http://www.mysql.com/manual.php (the manual) > http://lists.mysql.com/ (the list archive) > > To request this thread, e-mail <[EMAIL PROTECTED]> > To unsubscribe, e-mail <[EMAIL PROTECTED]> > Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php > > --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php