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