Получите общий объем продаж за день в PHP - PullRequest
1 голос
/ 15 октября 2011

Я никогда не делал этого раньше, поэтому я потерян здесь.

У меня есть следующая таблица транзакций:

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

Затем мне нужно создать запрос, который поможет мневытащить данные за неделю, сгруппированные по дням, чтобы я мог создать диаграмму, вы меня понимаете?

Я получил это до сих пор в PHP, который определяет номер недели и печатает полные дни недели(Я использую phpbb3):

    $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,
        ));
    }

Теперь я хочу организовать общий объем продаж, произошедших в понедельник, вторник, .... и т. Д.

1 Ответ

1 голос
/ 15 октября 2011

этот запрос 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

ОБНОВЛЕНИЕ, попробуйте этот 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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...