需求:查找近7天的订单数量、订单金额以及他们的日期。
方法1:查到的大部分是这种写法。需要修改的地方
qqxz_orders 表名、
ctime 用作归类的字段我表中是时间戳,使用的时候需要用 FROM_UNIXTIME 格式化
total订单金额
就这三个。
lect b.week_total,a.click_date,ifnull(b.count,0) as countfrom ( SELECT curdate() as click_date union all SELECT date_sub(curdate(), interval 1 day) as click_date union all SELECT date_sub(curdate(), interval 2 day) as click_date union all SELECT date_sub(curdate(), interval 3 day) as click_date union all SELECT date_sub(curdate(), interval 4 day) as click_date union all SELECT date_sub(curdate(), interval 5 day) as click_date union all SELECT date_sub(curdate(), interval 6 day) as click_date) a left join ( lect date(FROM_UNIXTIME(ctime,'%Y%m%d')) as datetime, count(*) as count ,sum(total) as week_total from qqxz_orders group by date(FROM_UNIXTIME(ctime,'%Y%m%d'))) b on a.clic学习视频k_date = b.datetime
方法二:使用PHP处理
https://blog.csdn.net/umufeng/article/details/81046489(我是看这里知道这种写法的,方法一做不了30天的)
但是博主提供的代码中,没提到$scan_qushi的格式是什么样的,对我这种菜鸡来说,根本无法直接使用。研究了几个小时后终于给我整出来了,我还是以7天举例。
SELECT count(*) as count,date(FROM_UNIXTIME(ctime,"%Y%m%d")) as ctime,sum(total) as total FROM `qqxz_orders` WHERE ( DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(from_unixtime(ctime)) ) GROUP BY date_f皮孔ormat(from_unixtime(ctime),'%Y%m%d')
获取到的数据是这样
预设最近七天的数值
$day = 7; for ($i = $day - 1; 0 <= $i; $i--) { $result[] = date('Y-m-d', strtotime('-' . $i . ' day')); $nums[] = 0; $total[] = 0; }
array_walk($order_list_arr, function ($value, $key) u ($result, &$nums,&$total) { $index = array_arch($value['ctime'],$result); $nums[$index] = $value['count']; $total[$index] = $value['total']; }); $data = [ 'day' => $result, 'nums' => $nums, 'total' =>$total ]; halt($data);
打印看效果
完整代码
$order_list = db('orders') ->field('coun专科有学位证书吗t(*) as count,date(FROM_UNIXTIME(ctime,"%Y%m%d")) as ctime,sum(total) as total') ->group("date_format(from_unixtime(ctime),'%Y%m%d')") ->where('DATE_SUB(CURDATE(), INTERVAL 7 DAY) <琉璃钟= date(from_unixtime(ctime))') ->lect();//sql语句//SELECT count(*) as count,date(FROM_UNIXTIME(ctime,"%Y%m%d")) as ctime,sum(total) as total FROM `qqxz_orders` WHERE ( DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(from_unixtime(ctime))预备党员民主评议 ) GROUP BY date_format(from_unixtime(ctime),'%Y%m%d') $order_list_arr = $order_list->toArray(); $day = 7; for ($i = $day - 1; 0 <= $i; $i--) { $result[] = date('Y-m-d', strtotime('-' . $i . ' day')); $nums[] = 0; $total[] = 0; } array_walk($order_list_arr, function ($value, $key) u ($result, &$nums,&$total) { $index = array_arch($value['ctime'],$result); $nums[$index] = $value['count']; $total[$index] = $value['total']; }); $data = [ 'day' => $result, 'nums' => $nums, 'total' =>$total ]; halt($data);
本文地址:https://blog.csdn.net/qq318692996/article/details/107304390
本文发布于:2023-04-08 19:59:50,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/d8789b64be5cb97ac221625f1cc7cd7c.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:php+mysql获取7天、30天的统计数据,没有数值的补充0 By勤勤学长.doc
本文 PDF 下载地址:php+mysql获取7天、30天的统计数据,没有数值的补充0 By勤勤学长.pdf
留言与评论(共有 0 条评论) |