按季度分组

时间:2012-10-30 11:46:41

标签: php mysql group-by

我需要在我的.php文件中逐年分组。在粗体类型中,我显示需要修复的代码,也就是切换案例4.刚才我分组正确的年,月,周和日,但现在我需要季度名称案例4.我试过这个GROUP FUNCTION的代码,但在2010年和2011年向我显示了5个组,这是错误的。

switch ($level) 
{

  case '4':**
    $group = "FLOOR(EXTRACT(YEAR_MONTH FROM FROM_UNIXTIME(invoice_date))/3)";</b>
    break;
}

固定IS


SQL PART


case '4':
                    $group = "EXTRACT(YEAR FROM FROM_UNIXTIME(invoice_date)) as group_field2, EXTRACT(QUARTER FROM FROM_UNIXTIME(invoice_date))";
                    break;

    $sql_select = $db->query("SELECT sum(amount) AS invoice_amount, " . $group . " AS group_field FROM 
                " . DB_PREFIX . "invoices WHERE invoice_date>= " . $startup . " " . $user_query . " GROUP BY group_field, group_field2 ORDER BY group_field2 DESC, group_field DESC");


TEXT - LINK PART

                    case '4':
                        $start = strtotime('+' . (($view_details_received['group_field'] - 1) * 3) . ' months', strtotime($view_details_received['group_field2'] . '/1/1'));
                        $finish = strtotime('+' . (($view_details_received['group_field'] - 1) * 3 + 3) . ' months', strtotime($view_details_received['group_field2'] . '/1/1'));
                        $start = getdate($start);
                        $finish = getdate($finish - 86400);
                        $title = 'Q' . $view_details_received['group_field2'] . ', ' . $view_details_received['group_field'];
                        break;

1 个答案:

答案 0 :(得分:2)

您可以在SQL中使用EXTRACT(QUARTER FROM date),然后定期执行GROUP BY

请参阅MySQL网页上的EXTRACT documentationtable of possible arguments