sql-SQL按月统计没有数据的月份如何显示

问题描述

SQL按月统计没有数据的月份如何显示


这是表。
SELECT MONTH(CREATE_TIME) AS m,COUNT(*),REMARK FROM dept AS d
WHERE YEAR(CREATE_TIME)=2016 AND REMARK = 2 OR REMARK
GROUP BY MONTH(CREATE_TIME)
这是SQL

这是结果。我想要没有数据的月份显示为0
例如上面的结果8,9,12月没有数据。就显示为8 0,9 0, 12 0

解决方案

如果我是你用数据库解决不了 我会用后台代码来把它解决

解决方案二:

SELECT K1.m,COUNT(*) ,K2.REMARK from

(SELECT MONTH(CREATE_TIME) AS m, REMARK FROM dept AS d
WHERE YEAR(CREATE_TIME)=2016
GROUP BY REMARK) K1
LEFT JOIN
(SELECT MONTH(CREATE_TIME) AS m,COUNT(*),REMARK FROM dept AS d
WHERE YEAR(CREATE_TIME)=2016 AND REMARK = 2
GROUP BY MONTH(CREATE_TIME)) K2
ON K1.REMARK=A2.REMARK
WHERE 1=1
GROUP BY K1.m

这个试试,我没数据表,纯属按思路写的.错了勿怪

解决方案三:

代码解决比SQL解决更好,按月统计的数据本身数量就少,查询出来代码校验一下把缺少的加上多少,通过SQL解决还占用数据库的资源。

时间: 2024-10-03 18:54:05

sql-SQL按月统计没有数据的月份如何显示的相关文章

delphi sql 语句-delphi-sql-语句 实现月统计数据

问题描述 delphi-sql-语句 实现月统计数据 有两个表, 表A: 日期 数量 2014-1-10 4 2014-1-23 5 2014-2-5 7 2014-3-10 4 2014-3-23 4 表B: 日期 数量 2014-1-10 30 2014-1-4 7 2014-1-31 35 2014-2-1 70 2014-2-30 60 2014-3-1 55 2014-3-23 45 2014-3-31 50 想要的结果: 统计时间段 2014-1-10~2014-3-23 月份 A.

MySQL中如何按月统计数据

表finance有俩个字段如下 date date money double(15,2) 下面需要对表 finance的2010年财务数据,按月进行统计 Sql代码 select DATE_FORMAT(date,'%Y-%m') as month,sum(money) as money from finance where DATE_FORMAT(date,'%Y')=2010 group by month order by month 下面是按周统计 查看MySQL的manual %X Ye

ORACLE SQL调优之统计信息缺失导致的逻辑读暴增

    2016年11月8日,接到广西负责人申告,说决策系统一条SQL平时执行2s左右能执行完,现在却要执行2:30多才能出结果,请求对其做处理.     操作系统:RHEL LINUX 6.4     数据库版本:11.2.0.4     首先,登录服务器查看数据库服务器的状态: [oracle@orcl ~]$ free -m              total       used       free     shared    buffers     cached Mem:    

SQL的排序,分组,统计常用语句

  SQL的排序,分组,统计常用语句: 1.使用排序使数据有序 通常,你的所有数据真正需要的仅仅是按某种顺序排列.SQL的ORDER BY语句可以以字母或数字顺序组织数据.因此,相似的值按组排序在一起.然而,这个分组时排序的结果,并不是真的分组.ORDER BY显示每条记录而分组可能代表很多记录. 2.进行分组除去重复值 排序和分组之间的最大区别是:排序的数据显示所有记录(在限定标准范围之内),而分组数据不是显示所有记录.GROUP BY语句对于同样的值只显示一条记录.例如,下面的语句中的GRO

MySQL · 性能优化· CloudDBA SQL优化建议之统计信息获取

阿里云CloudDBA具有SQL优化建议功能,包括SQL重写建议和索引建议.SQL索引建议是帮助数据库优化器创造最佳执行路径,需要遵循数据库优化器的一系列规则来实现.CloudDBA需要首先计算表统计信息,是因为: 数据库优化器通常是基于代价寻找执行路径: SQL优化建议所针对的数据库不限于MySQL数据库,也不局限于某一个特定版本: 1. 基本原则 数据库统计信息在SQL优化起到重要作用.用来估算查询条件选择度的常见统计信息包括表统计信息和字段统计信息.DBA计算查询条件选择度或代价时经常通过

SQL Server幕后英雄 - 统计信息

SQL Server查询优化器对于执行计划成本的评估是基于数据库统计信息的.所以,数据库统计信息直接影响到数据库查询效率,是数据库系统快速响应,低延迟特性的幕后英雄,但是我们又经常忽视数据库统计信息的存在和维护,怀着为英雄正名和唤醒大家对幕后英雄尊重的目的写作这篇文章. 什么是统计信息 SQL Server查询优化器使用统计信息来评估表或索引视图的一个或多个列中值的分布,这个分布信息提供了用于创建高质量的执行计划的基础(称为基数).更为通俗一点说,SQL Server的执行计划是基于统计信息来评

Excell导SQL Server 某列包含混合数据 导致非数字串为null

  [问题描述]     Excell文件导入SQL Server时,某列数据中即包含纯数字组合的串,也包含带有个别字母的串.导入数据库时,该列的所有非纯数字串为null.例如:     Excell文件:     Sid    Name    Code     1        Jerry       1001     2        Merry      CN01     3        Mark       1002     导入数据库表后:     1      Jerry    

SQL Server · 特性介绍 · 统计信息

SQL Server查询优化器对于执行计划成本的评估是基于数据库统计信息的.所以,数据库统计信息直接影响到数据库查询效率,是数据库系统快速响应,低延迟特性的幕后英雄,但是我们又经常忽视数据库统计信息的存在和维护,怀着为英雄正名和唤醒大家对幕后英雄尊重的目的写作这篇文章. 什么是统计信息 SQL Server查询优化器使用统计信息来评估表或索引视图的一个或多个列中值的分布,这个分布信息提供了用于创建高质量的执行计划的基础(称为基数).更为通俗一点说,SQL Server的执行计划是基于统计信息来评

写一句sql查询一年每月的数据量

问题描述 写一句sql查询一年每月的数据量 有一张表A,里面有一个订单ID,创建时间date,现在要查今年每一个月的订单数,返回的字段就是每一个月,还有每月的订单数量,应怎么写? 解决方案 你什么数据库也不说明.不通数据库的日期格式化是有差异的 比如像oracle就可以下面这样写. SELECT DATE,COUNT(*) from A group by to_date(date,'yyyy-mm') order by date 解决方案二: SQL Server: SELECT MONTH([