MySQL中实现连续日期内数据统计,缺省天数0补全
某一日,需要查询订单表中一个月每天的金额数
查询出数据如下:
array(14) {[0] => array(2) {["money"] => string(7) "2000.00"["times"] => string(2) "12"}[1] => array(2) {["money"] => string(7) "6000.00"["times"] => string(2) "14"}[2] => array(2) {["money"] => string(8) "31569.00"["times"] => string(2) "15"}[3] => array(2) {["money"] => string(9) "134596.50"["times"] => string(2) "16"}[4] => array(2) {["money"] => string(7) "4000.00"["times"] => string(2) "17"}[5] => array(2) {["money"] => string(8) "20525.00"["times"] => string(2) "18"}[6] => array(2) {["money"] => string(7) "2000.00"["times"] => string(2) "20"}[7] => array(2) {["money"] => string(7) "6000.00"["times"] => string(2) "21"}[8] => array(2) {["money"] => string(7) "9000.00"["times"] => string(2) "22"}[9] => array(2) {["money"] => string(7) "2000.00"["times"] => string(2) "23"}[10] => array(2) {["money"] => string(7) "2000.00"["times"] => string(2) "25"}[11] => array(2) {["money"] => string(7) "7000.00"["times"] => string(2) "26"}[12] => array(2) {["money"] => string(8) "10000.00"["times"] => string(2) "27"}[13] => array(2) {["money"] => string(9) "212263.28"["times"] => string(2) "28"} }
只查询了14天的数据,而且中间还有几天没有数据,但是我想要没查询的天数显示为0,这个时候就需要先给数据加个起点!如果没有1号,我们就把一号加上,有就略过! 然后还要加个终点,终点应放在原始数组中,不然算法不可能自作主张的添加数据,我这里默认每个月31号,毕竟要做折线统计图,日期是固定的,方法如下:
1 if ($list[0]['times'] !=1){ 2 array_unshift($list,array('money' => '0', 'times' =>'01')); //这样就添加了起点 3 } 4 5 if ($list[count($list)-1]['times'] !=31){ 6 $list[] = array('money' => '0', 'times' => '31');//这样就添加了终点 7 } 8 9 10 $last = '1'; 11 12 foreach($list as $r) { 13 while($last && $last < $r['times']) { 14 $res[] = array('money' => '0','times' => "$last"); 15 16 $last +=1; 17 } 18 $res[] = $r; 19 $last +=1; 20 } 21 22 23 // $res就是最终的结果 24 dump($res);
结果如下:
array(31) {[0] => array(2) {["money"] => string(1) "0"["times"] => string(2) "01"}[1] => array(2) {["money"] => string(1) "0"["times"] => string(1) "2"}[2] => array(2) {["money"] => string(1) "0"["times"] => string(1) "3"}[3] => array(2) {["money"] => string(1) "0"["times"] => string(1) "4"}[4] => array(2) {["money"] => string(1) "0"["times"] => string(1) "5"}[5] => array(2) {["money"] => string(1) "0"["times"] => string(1) "6"}[6] => array(2) {["money"] => string(1) "0"["times"] => string(1) "7"}[7] => array(2) {["money"] => string(1) "0"["times"] => string(1) "8"}[8] => array(2) {["money"] => string(1) "0"["times"] => string(1) "9"}[9] => array(2) {["money"] => string(1) "0"["times"] => string(2) "10"}[10] => array(2) {["money"] => string(1) "0"["times"] => string(2) "11"}[11] => array(2) {["money"] => string(7) "2000.00"["times"] => string(2) "12"}[12] => array(2) {["money"] => string(1) "0"["times"] => string(2) "13"}[13] => array(2) {["money"] => string(7) "6000.00"["times"] => string(2) "14"}[14] => array(2) {["money"] => string(8) "31569.00"["times"] => string(2) "15"}[15] => array(2) {["money"] => string(9) "134596.50"["times"] => string(2) "16"}[16] => array(2) {["money"] => string(7) "4000.00"["times"] => string(2) "17"}[17] => array(2) {["money"] => string(8) "20525.00"["times"] => string(2) "18"}[18] => array(2) {["money"] => string(1) "0"["times"] => string(2) "19"}[19] => array(2) {["money"] => string(7) "2000.00"["times"] => string(2) "20"}[20] => array(2) {["money"] => string(7) "6000.00"["times"] => string(2) "21"}[21] => array(2) {["money"] => string(7) "9000.00"["times"] => string(2) "22"}[22] => array(2) {["money"] => string(7) "2000.00"["times"] => string(2) "23"}[23] => array(2) {["money"] => string(1) "0"["times"] => string(2) "24"}[24] => array(2) {["money"] => string(7) "2000.00"["times"] => string(2) "25"}[25] => array(2) {["money"] => string(7) "7000.00"["times"] => string(2) "26"}[26] => array(2) {["money"] => string(8) "10000.00"["times"] => string(2) "27"}[27] => array(2) {["money"] => string(9) "212263.28"["times"] => string(2) "28"}[28] => array(2) {["money"] => string(1) "0"["times"] => string(2) "29"}[29] => array(2) {["money"] => string(1) "0"["times"] => string(2) "30"}[30] => array(2) {["money"] => string(1) "0"["times"] => string(2) "31"} }
同样的. 12个月也可以这样操作,只要把终点改为12就可以了
转载于:https://www.cnblogs.com/luojie-/p/10778889.html
MySQL中实现连续日期内数据统计,缺省天数0补全相关推荐
- Mysql中查询连续一段时间内统计数据
Mysql中查询连续一段时间内统计数据 在一次生产环境中遇到统计当前日期的前10天每天的订单量,一开始想到的就是根据日期进行分组统计,但在查询的时候会存在一个问题:有可能某一天没有订单交易,日期分组中 ...
- 在Sqlserver下巧用行列转换日期的数据统计
在Sqlserver下巧用行列转换日期的数据统计 原文:在Sqlserver下巧用行列转换日期的数据统计 在Sqlserver下巧用行列转换日期的数据统计 前言 在SQLSERVER 中有很多统计函数 ...
- MySQL 中的常用日期函数
MySQL 中的常用日期函数: 函数 描述 NOW() 返回当前的日期和时间 CURDATE() 返回当前的日期 CURTIME() 返回当前的时间 DATE() 提取日期或日期/时间表达式的日期部分 ...
- MySql中把一个表的数据插入到另一个表中的实现代码--转
MySql中把一个表的数据插入到另一个表中的实现代码 司的一个项目,做报表--要关联的表结构比较多,最后决定把要用的数据集合到一张新表中,需要用到以下的sql语法......分享下: web开发中,我 ...
- mysql中Long类型日期比较大小
项目里遇到一个功能,需要查出表中,昨天一天某个人的考勤记录. 问题本不复杂,但是表中用户打卡时间为char类型的时间戳(毫秒).这样一来比较时间范围就麻烦了许多. 还好,网上以为有脾气的博主写的文章帮 ...
- MySQL删除或清空表内数据的方法
MySQL删除或清空表内数据的方法 一.使用MySQL清空表数据命令:truncate SQL语法为: truncate table 表名 注意: truncate该命令会直接将数据表内数据清空: t ...
- mysql 日期详解,MySQL中如何操作日期的详解
日期是数据库存储很重要的一部分,下面总结下在MySQL中常用的日期操作 1.select curDate(); #获取当前日期select curTime(); #获取当前时间select now() ...
- mysql中查询当年1-12月数据
数据统计中经常有这样的需求,统计今年1-12月的贸易额,统计了两种比较使用的方法; 第一种:采用union方式 select concat((select year(now())), '-01') a ...
- php省份分布统计图,PHP+Mysql+jQuery实现中国地图区域数据统计
使用过百度统计或者cnzz统计的童鞋应该知道,后台有一个地图统计,不同访问量的省份显示的颜色也不一样,今天我将带领大家开发一个这样的案例.上一篇<使用raphael.js绘制中国地图>文章 ...
最新文章
- 朴素的串模式匹配(C语言实现)【串模式匹配】
- TC工具后台模式_如何用WRF模式模拟台风个例
- Java | Python 流程控制对比
- 【qduoj - 1012】反转数字(模拟,水题)
- Java web后端4 会话 Cookie Session
- oppo专用计算机,OPPO手机助手
- C语言 fclose 函数 - C语言零基础入门教程
- 智慧城市产业图谱研究报告(2020年)
- java 数据溢出和编译错误的差别
- Linux下mysql主从复制配置(CentOS7)
- 前端面试:如何修改overflow:scroll 滚动条的默认样式-如背景色以及宽度
- 存储基础(VG、LV、LP、PV、PP)
- 人脸方向学习(四):Face Recognition-SphereFace解读
- Illustrator 教程,如何在 Illustrator 中对矢量图进行变形、定形和塑形?
- python新浪微博爬虫_利用新浪API实现数据的抓取\微博数据爬取\微博爬虫
- 【3dmax千千问】初学3dmax插件神器第23课:3dmax自学渲染进阶提升教程|疯狂模渲大师排除了特殊的材质后,室内设计师还要去除VRAY的光线追踪,再设计3dmax效果图!
- 如何通过手机拍照生成三维模型
- 2021年2月3日 星期三 农历立春 霾 天津
- echarts报表javascript插件简介
- ORA-01400错误
热门文章
- 打印工资条怎么做到每个人都有表头明细_现在还在用订书钉装订工资条,算是一种落后吗?你的公司怎么发?...
- Flask知识点查阅
- oracle调用MySQL函数,Oracle的INSTR函数MySQL实现
- antd 能自适应吗_我文笔不好,不太会写文章,能做好自媒体吗?
- 使用缓冲流有什么好处_使用档案密集柜有什么好处?不看一看会后悔
- c语言面试会问10个数排序吗,c语言面试最必考的十道试题,求职必看!!!
- 西门子uss通讯实例_西门子plc1200系列的功能特点有哪些?
- 一个域名能申请多少个ssl_必须要有域名才能申请SSL证书吗?
- 怎么设置html编译报错,doctype html编译出错,提示unexpected character D,这是怎么回事呀?...
- 一个php请求的执行过程,PHP程序执行的过程原理