某一日,需要查询订单表中一个月每天的金额数

查询出数据如下:

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号,毕竟要做折线统计图,日期是固定的,方法如下:

          if ($list[0]['times'] !=1){
array_unshift($list,array('money' => '0', 'times' =>'01')); //这样就添加了起点
} if ($list[count($list)-1]['times'] !=31){
$list[] = array('money' => '0', 'times' => '31');//这样就添加了终点
} $last = '1'; foreach($list as $r) {
while($last && $last < $r['times']) {
$res[] = array('money' => '0','times' => "$last"); $last +=1;
}
$res[] = $r;
$last +=1;
} // $res就是最终的结果
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就可以了

MySQL中实现连续日期内数据统计,缺省天数0补全的更多相关文章

  1. 在Sqlserver下巧用行列转换日期的数据统计

    在Sqlserver下巧用行列转换日期的数据统计 前言 在SQLSERVER 中有很多统计函数的基础语法,有使用Group By 或 partition by 后配合Sum,Count(*) 等用法. ...

  2. MYSQL中delete删除多表数据

    MYSQL中delete删除多表数据 DELETE删除多表数据,怎样才能同时删除多个关联表的数据呢?这里做了深入的解释: 1. delete from t1 where 条件 2.delete t1 ...

  3. mysql中把一个表的数据批量导入另一个表中

    mysql中把一个表的数据批量导入另一个表中   不管是在网站开发还是在应用程序开发中,我们经常会碰到需要将MySQL或MS SQLServer某个表的数据批量导入到另一个表的情况,甚至有时还需要指定 ...

  4. MySQL 中的数据库名称、数据表名称、字段名称

    如何查询Oracle,Sql Server,MySQL 中的数据库名称.数据表名称.字段名称 分类: Database2012-09-24 22:16 7034人阅读 评论(0) 收藏 举报 数据库s ...

  5. C++ 语言中的重载、内联、缺省参数、隐式转换等机制展现了很多优点

    C++ 语言中的重载.内联.缺省参数.隐式转换等机制展现了很多优点,但是这些 优点的背后都隐藏着一些隐患.正如人们的饮食,少食和暴食都不可取,应当恰到好处. 我们要辨证地看待 C++的新机制,应该恰如 ...

  6. GROUP BY和HAVING 以及mysql中常用的日期函数

    一.mysql中的GROUP BY和HAVINGGROUP BY常见的是和聚合函数(SUM,MIN,MAX,COUNT)搭配使用. 比如:SELECT category,SUM(money) AS ` ...

  7. PHP+Mysql+jQuery实现中国地图区域数据统计(raphael.js)

    使用过百度统计或者cnzz统计的童鞋应该知道,后台有一个地图统计,不同访问量的省份显示的颜色也不一样,今天我将带领大家开发一个这样的案例.上一篇<使用raphael.js绘制中国地图>文章 ...

  8. 向mysql中插入Date类型的数据

    先看数据库表的定义 date字段为sql.date类型.我要向其中插入指定的日期和当前日期. 一.插入当前日期 思路:先获取当前系统,在将当前系统时间转换成sql类型的时间,然后插入数据库.代码如下 ...

  9. mysql 中时间和日期函数应用

    一.MySQL 获得当前日期时间 函数 1.1 获得当前日期+时间(date + time)函数:now() mysql> select now(); +-------------------- ...

随机推荐

  1. git本地项目上传至码云gitee

    如果你的本机是安装成功第一次使用,先配置一下一些基本的信息 $ git config--global user.name "Your Name" $ git config --gl ...

  2. python数据类型——数据转换

    数据类型有很多种,比如数值和字符,比如6和a,字符是需要加双引号的,下面的例子运行的结果是不一样的,数值会相加而字符会相连 print(6+6)print("6"+"6& ...

  3. 2018-2019-1 20189201《Linux内核原理与分析》第四周作业

    1. 阴天☁️ 你说你爱烟雨微茫,雨来时你却伞遮霓裳: 你说你爱春光灿烂,阳光普照时你却孑然惆怅: 你说你爱微风轻柔,风拂发梢时你却紧闭门窗: 这便是为何你说你也深深爱我,我却眼波成霜. 2. 今日发 ...

  4. RAID 0 ~ RAID 7

    一.RAID解析1.RAID 0(1)将几块磁盘并行组合,横向写数据(2)并发IO,写数据最快缺点:不提供数据冗余,如果其中一块磁盘废掉,则数据全毁详细:条带深度大时,一次IO只能从一块磁盘上读取,无 ...

  5. Spark环境搭建(二)-----------HDFS shell 常用操作

    配置好HDFS,也学习了点HDFS的简单操作,跟Linux命令相似 1)  配置Hadoop的环境变量,类似Java的配置 在 ~/.bash_profile 中加入 export HADOOP_HO ...

  6. (转)RBAC权限管理

    RBAC 模型作为目前最为广泛接受的权限模型 角色访问控制(RBAC)引入了Role的概念,目的是为了隔离User(即动作主体,Subject)与Privilege(权限,表示对Resource的一个 ...

  7. 根据两点经纬度计算距离和角度——java实现

    原理:见上一篇博客   http://blog.csdn.net/xiaobai091220106/article/details/50879365 百度地图拾取经纬度坐标:http://api.ma ...

  8. git删除掉已经保存的用户名密码

    以保存的用户名密码删除,先找到变量存在的位置: git config -l To help track down the setting, I'd try to use: git config --l ...

  9. Java课程寒假之开发记账本软件(Android版)之一

    一.选择编译软件 最终选择了目前较为流行的Android Studio,网上的评价都比较偏向于好评. 安装的过程还算比较正常,没有什么太大的波折,解压安装虽然直接,但对于我这种每次装编译软件都有形形色 ...

  10. 安装linux

    ctrl+alt tab键切换