SELECT 
FROM_DAYS(TO_DAYS(purchaseDate)-DAYOFYEAR(purchaseDate)+WEEK(purchaseDate)*7) 
will hopefully return the date you need. You'll have to enclose all that 
in a DATE_FORMAT to get a printable date tho. Last minute note: you 
might have to subtract 1 from the last term because I guess MySQL starts 
counting with week 1.

HTH

Bogdan

Adam Royle wrote:

> Hello all,
>
> I am creating a finance manager in php and mysql for my own accounting 
> purposes (and to broaden my skills in php and sql) and I have a couple 
> of pages where I view statistics on how much I spend, etc, and what 
> patterns are formed from my spending.
>
> I have made a couple of pages with different statistics, and on one 
> specific page, I show how much I spend total each week... The 
> following query does that, but I want to display the start date and 
> end date of the week.
>
> $sql = "SELECT YEARWEEK(purchaseDate,1) AS week,
>             CONCAT_WS(' ',MONTHNAME(purchaseDate), 
> YEAR(purchaseDate),'- Wk', WEEK(purchaseDate,1)) AS month,
>             SUM(itemPrice) AS total
>         FROM tblCashflow
>         WHERE userID_FK = ${user['userID']}
>         AND Type = 'Expenditure'
>         GROUP BY week";
>
> OK, so the sql works, and the output on the page looks like something 
> below...
>
> February 2002 - Wk 5    $49.70
> February 2002 - Wk 7    $12.95
> February 2002 - Wk 8    $53.29
> February 2002 - Wk 9    $275.99
> March 2002 - Wk 10    $78.95
> March 2002 - Wk 11    $171.15
> March 2002 - Wk 12    $82.85
> March 2002 - Wk 13    $20.50
> April 2002 - Wk 14    $55.15
> April 2002 - Wk 15    $30.55
> April 2002 - Wk 16    $104.20
> April 2002 - Wk 17    $461.95
> May 2002 - Wk 18    $152.75
> May 2002 - Wk 19    $219.80
> May 2002 - Wk 20    $133.55
> May 2002 - Wk 21    $98.65
>
> Now thats all well and good, but I want to make it display something 
> like the following:
>
> February 1 - 7 2002     $49.70
> February 8 - 15 2002     $12.95
> February 16 - 23 2002 $53.29
>
> etc etc etc
>
> Does anyone have any idea on how this could be achieved? I looked at 
> the mySQL time and Date functions, but I couldn't find out how to do 
> it with that, and I think doing the work in PHP might be the 
> answer.... Also, currently the SQL statement only shows the weeks 
> where I have spent money, so if I don't spend anything in that week, 
> it won't show up at all, although I would like it to say "January 12 - 
> 19 2002 $0" or something like that.
>
> Below is my table schema for the above query
>
> Adam
>
> CREATE TABLE tblCashflow (
>   ID bigint(20) NOT NULL auto_increment,
>   purchaseDate date default NULL,
>   categoryID_FK tinyint(4) default NULL,
>   itemName text,
>   itemPrice float default '0',
>   isEssential tinyint(4) default '0',
>   paymentTypeID_FK tinyint(4) default '1',
>   receiverID_FK tinyint(4) default NULL,
>   itemDesc text,
>   Type text,
>   userID_FK int(11) default NULL,
>   PRIMARY KEY  (ID)
> );
>
>




-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to