找出PHP和MySQL销售额最高,销售额最低的日子

时间:2017-03-26 14:39:32

标签: php mysql

我有一个小型餐厅POS系统,它将所有销售记录在一个名为'orders'的表中。

sale_id - item - date - time - quantity - price

我想找出销售额最低,销量最高(item_id *数量)的日期,以及过去7天内发生的日期(日期)。

$past_1day = date('Y-m-d',strtotime('yesterday'));
$past_2day = date('Y-m-d',strtotime('yesterday -1 day'));
$past_3day = date('Y-m-d',strtotime('yesterday -2 day'));
$past_4day = date('Y-m-d',strtotime('yesterday -3 day'));
$past_5day = date('Y-m-d',strtotime('yesterday -4 day'));
$past_6day = date('Y-m-d',strtotime('yesterday -5 day'));
$past_7day = date('Y-m-d',strtotime('yesterday -6 day'));
$highestSales = array();

$get_past1day = mysql_query("SELECT SUM(quantity) AS sales_qty FROM orders WHERE item = '$item' AND date = '$past_1day'") or die(mysql_error());
$past1day = mysql_fetch_assoc($get_past1day);
array_push($highestSales, $past_1day,$past1day['sales_qty']);

$get_past2day = mysql_query("SELECT SUM(quantity) AS sales_qty FROM orders WHERE item = '$item' AND date = '$past_2day'") or die(mysql_error());
$past2day = mysql_fetch_assoc($get_past2day);
array_push($highestSales, $past_2day,$past2day['sales_qty']);

$get_past3day = mysql_query("SELECT SUM(quantity) AS sales_qty FROM orders WHERE item = '$item' AND date = '$past_3day'") or die(mysql_error());
$past3day = mysql_fetch_assoc($get_past3day);
array_push($highestSales, $past_3day,$past3day['sales_qty']);

$get_past4day = mysql_query("SELECT SUM(quantity) AS sales_qty FROM orders WHERE item = '$item' AND date = '$past_4day'") or die(mysql_error());
$past4day = mysql_fetch_assoc($get_past4day);
array_push($highestSales, $past_4day,$past4day['sales_qty']);

$get_past5day = mysql_query("SELECT SUM(quantity) AS sales_qty FROM orders WHERE item = '$item' AND date = '$past_5day'") or die(mysql_error());
$past5day = mysql_fetch_assoc($get_past5day);
array_push($highestSales, $past_5day,$past5day['sales_qty']);

$get_past6day = mysql_query("SELECT SUM(quantity) AS sales_qty FROM orders WHERE item = '$item' AND date = '$past_6day'") or die(mysql_error());
$past6day = mysql_fetch_assoc($get_past6day);
array_push($highestSales, $past_6day,$past6day['sales_qty']);

$get_past7day = mysql_query("SELECT SUM(quantity) AS sales_qty FROM orders WHERE item = '$item' AND date = '$past_7day'") or die(mysql_error());
$past7day = mysql_fetch_assoc($get_past7day);
array_push($highestSales, $past_7day,$past7day['sales_qty']);

echo max($highestSales);

然而,这并没有给我正确的结果,我相信这不是最优雅的方法。我非常感谢能够简化我的代码并获得最高和最低销售额的一天。

谢谢,

DB

1 个答案:

答案 0 :(得分:1)

对于过去7天内销售额最高的那一天:

SELECT date, sum(quantity) total_day_quantity

from orders  
WHERE  date >= '$past_7day'
GROUP by date
ORDER BY total_day_quantity desc
LIMIT 1;

最低:

SELECT date, sum(quantity) total_day_quantity

from orders  
WHERE  date >= '$past_7day'
GROUP by date
ORDER BY total_day_quantity asc
LIMIT 1;
# for sales by values not quantities sum(quantity * price)

注意:您的架构假定每个订单中有一个项目,这在生活示例中是不现实的。

相关问题