2011-10-15 96 views
1

我從來沒有這樣做過,所以我迷失在這裏。在PHP中獲取總銷售額

我有以下交易表:

transaction_id transaction_user transaction_ammount transaction_time 
1      2     950    1318482908 
2      2     750    1318482916 
3      2     950    1318482939 

然後,我需要創建一個查詢,可以幫助我拉每週數據,按天分組,這樣我可以創建一個圖表,你聽到了嗎?

我到目前爲止在PHP得到這個檢測的週數並打印完整的星期天(IM使用。中文):

$format = 'l'; 
    $ts = time(); // set current Unix timestamp 
    $today = date($format, $ts); // set today 
    $year = date('o', $ts); 
    $week = date('W', $ts); 
    $weekdays = 7; 


    for($i = 1; $i <= $weekdays; $i++) 
    { 
     // timestamp from ISO week date format 
     $ts = strtotime($year.'W'.$week.$i); 

     $day = date($format, $ts); 
     // test if $day is $today 
     if ($day == $today) { 
      $day = '<strong>' . $day . '</strong>'; 
     } 

     $template->assign_block_vars('time', array(
      'DATE'     => $day, 
     )); 
    } 

現在,我想安排的總銷售額發生週一,週二,...等...

+0

這可以b e完成SQL查詢 –

回答

1

這個MySQL查詢

select week(transaction_time) as weekno, weekday(transaction_time) as dayno, sum(transaction_ammount) as total_amount 
group by  week(transaction_time), weekday(transaction_time) 

會給你這個結果集

|weekno|dayno|total_amount 

這裏是在MySQL中的那些功能的一些引用,這樣就可以解釋數據

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_week

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_weekday

UPDATE,試試這個SQL,因爲它可能需要將時間戳轉換爲其他功能正常工作

select week(FROM_UNIXTIME(transaction_time)) as weekno, weekday(FROM_UNIXTIME(transaction_time)) as dayno, sum(transaction_ammount) as total_amount 
group by week(FROM_UNIXTIME(transaction_time)), weekday(FROM_UNIXTIME(transaction_time)) 
+0

我試着運行查詢,它只是給出了正確的總金額,但是對於'week(transaction_time)作爲weekno,weekday(transaction_time)as dayno'它給了我只是NULL ... I也嘗試閱讀你給我的鏈接,我只需要更多的指導如何得到這個權利...... –

+0

什麼是您的表中的transaction_time列的數據類型?請參閱更新回答 – bumperbox

+0

好吧我剛剛添加'WEEK(FROM_UNIXTIME(transaction_time))作爲weekno' 做了這項工作,現在我想我可以繼續下一步正確呈現信息 –