0

特定の期間にいくつかのステータスを取得していますが、この期間の「1 日あたりの平均売上」である別の統計を取得したいと考えています。特定の期間の毎日の平均を行う方法がわかりません。誰かアドバイスをいただけますか?

$whereSql = 'WHERE created >= '.$endTimestamp.' AND
            created <= '.$startTimestamp;

    $tru->query->run(array(
        'name' => 'get-figures',
        'sql' => 'SELECT
                SUM(price) AS total_sales,
                COUNT(id) AS total_orders,
                AVG(total) AS order_total_average
                (SELECT
                        SUM(quantity)
                    FROM `order_product`
                    INNER JOIN `order` ON (
                        `order`.id = order_product.order_id AND
                        `order`.created >= '.$endTimestamp.' AND
                        `order`.created <= '.$startTimestamp.' AND
                        `order`.type_id = '.$type->getId().'
                    )
                ) as total_units
            FROM `order`
            '.$whereSql.' AND type_id = '.$type->getId().'',
        'connection' => 'store'
    ));
4

2 に答える 2

0

その日にスコープが設定された日付の to_char でグループ化する必要があり (おそらく「ddd」)、適切な日付範囲に制限する where 句コンポーネントが必要になります。

于 2010-06-21T00:16:40.113 に答える
0

あなたが何を望んでいるかを私が正しく理解していれば、合計売上高を選択した期間の日数で割っていただけます。この列を外側の select ステートメントに追加します。 SUM(price)/DATEDIFF($endTimestamp,$startTimestamp)

また、ユーザーが指定した値を mysql_real_escape_string でエスケープしていることを確認してください。そうしないと、SQL インジェクションの脆弱性が発生します。

于 2010-06-21T00:51:13.510 に答える