Php 如何获得每个月的总销售额
我试图在一个名为Flot的jquery栏上显示每月的销售额&这是我的查询Php 如何获得每个月的总销售额,php,mysql,sql,Php,Mysql,Sql,我试图在一个名为Flot的jquery栏上显示每月的销售额&这是我的查询 $q = $db->getRows("SELECT date AS dates, COUNT(id) AS sales FROM orders WHERE date BETWEEN ? AND ? GROUP BY `date` ORDER BY `date`", PDO::FETCH_ASSOC, ["$year-01-01", "$year-12-31"]); 下面是我如何利用我的查询 $views =
$q = $db->getRows("SELECT date AS dates,
COUNT(id) AS sales FROM orders
WHERE date BETWEEN ? AND ?
GROUP BY `date` ORDER BY `date`",
PDO::FETCH_ASSOC, ["$year-01-01", "$year-12-31"]);
下面是我如何利用我的查询
$views = array_fill(1, (int) 12, 0);
foreach ($q as $viewed) {
$the_day = (int) substr($viewed['dates'], -2); // get the day from the date
$views[$the_day] = $viewed['sales'];
}
return $views;
这是我的代码的响应
Array
(
[1] => 0
[2] => 0
[3] => 0
[4] => 0
[5] => 0
[6] => 0
[7] => 0
[8] => 0
[9] => 0
[10] => 0
[11] => 0
[12] => 0
[0] => 1
)
它应该显示第9个月最后[0]=>1的值。
我在这个查询中哪里错了?您可以直接从数据库获取值,例如:
"SELECT
month(date) AS month
, COUNT(id) AS sales
FROM orders
WHERE date BETWEEN ? AND ?
GROUP BY month(`date`)
ORDER BY month(`date`)"
尝试按monthdate分组,然后在“使用monthdate”对话框中选择。然后获取结果并输出。代码中您自己的注释说明了为什么这是错误的。基于主题行,我希望在其中的某个地方看到一个总和。您可以在GROUP BY子句中使用EXTRACTMOUNT FROM date。即使您使用where子句来限制一个特定的年份,我也会将extractYEAR FROM date添加到group by子句中,以防您需要列出几年。另见: