mysql-求一个Mysql语句 查询出当前周的数据按照天分组

问题描述

求一个Mysql语句 查询出当前周的数据按照天分组
SELECT
DATE_FORMAT(uploadTime_beg%Y-%m-%d"") as time
SUM(field01) as sumStatus1
SUM(field02) as sumStatus2
SUM(field03) as sumStatus3
SUM(field04) as sumStatus4
SUM(field05) as sumStatus5
FROM
health_realdata
WHERE DATE_FORMAT(uploadTime_beg'%Y%u') = DATE_FORMAT(CURDATE()'%Y%u')
GROUP BY DATE_FORMAT(uploadTime_beg%Y-%m-%d"");

    这个SQL查出的数据如下:    ![图片说明](http://img.ask.csdn.net/upload/201511/24/1448359276_377950.png)    我想要的效果是:虽然数据库中没有2015-11-25的数据,但是也要查出来,只是后面的值显示为0.    请问在MYSQL中如何实现,上面的SQL如何修改呢。    我看到网上说需要一个日历辅助表,说的不是很详细,我试了一下好像有问题,如果这种方法可行,还请大牛们写详细点,谢谢。

解决方案

思路:
1、将你上边查询出来的结果跟你说的那个有从2015-11-01 到2015-11-30的日历辅助表进行右连接查询
2、将1中查询出的结果进行再次的查询处理,将null值更换为0;

下边的为代码示意,没有进行调试,应该会有问题,大体结构是这样的:

     SELECT o.time     case when o.sumStatus1 is null then 0 else o.sumStatus1 end as sumStatus1    case when o.sumStatus2 is null then 0 else o.sumStatus2 end as sumStatus2    case when o.sumStatus3 is null then 0 else o.sumStatus3 end as sumStatus3    case when o.sumStatus4 is null then 0 else o.sumStatus4 end as sumStatus4    case when o.sumStatus5 is null then 0 else o.sumStatus5 end as sumStatus5    (        (        SELECT        DATE_FORMAT(uploadTime_beg%Y-%m-%d"") as time        SUM(field01) as sumStatus1        SUM(field02) as sumStatus2        SUM(field03) as sumStatus3        SUM(field04) as sumStatus4        SUM(field05) as sumStatus5        FROM        health_realdata        WHERE DATE_FORMAT(uploadTime_beg'%Y%u') = DATE_FORMAT(CURDATE()'%Y%u')        GROUP BY DATE_FORMAT(uploadTime_beg%Y-%m-%d"");        ) as a         right join 表d on a.time = d.time    ) o

解决方案二:

解决方案三:
select * from Table
where date_colum > date_add(now()interval - dayofweek(now())+1 day)
and date_colum < date_add(now()interval - dayofweek(now())+7 day)
group by day(date_colum)

打赏吧。。

解决方案四:
@晓呆同学 ,多谢,这里用右链接才是王道,我昨天用的事左连接不对,后来改成右链接位置放的不对,导致还是出不来。
你的思路是对的,谢谢。

不过我没有分,不然都给你。

时间: 2024-10-02 05:09:44

mysql-求一个Mysql语句 查询出当前周的数据按照天分组的相关文章

只有两个字段用一个sql语句查询出某个学生的姓名、成绩以及在表中的排名_数据库其它

昨天去面试时遇到一个这样的问题: 有一张成绩表,只有两个字段,姓名和成绩.怎样用一个sql语句查询出某个学生的姓名,成绩以及在表中的排名? 一时间我也想不出具体实现,我就提了两种思路:一种是通过join关联一个查询出他排名的sql语句:一种是通过group by来实现. 回答得连自己都觉得有点心虚.请问大家如何实现呢? 假设:表名字为Course,两个字段分别为name和score 实现语句: SELECT 学生,成绩, (SELECT COUNT(*) FROM 表 WHERE a.成绩<=成

mysql 根据不同登录角色查询出不同的数据集合

问题描述 mysql 根据不同登录角色查询出不同的数据集合 每个角色的code值都不相同,根据登录角色的code值查出满足条件的集合. 列如51.135.24.03(code值) 角色一(code值为51)登录,取包含51第二个"."之前的所有数据,查出来的code集合为51.XXX 角色二(code值为51.135)登录,取包含51.135第三个"."之前的所有数据,查出来的code集合为51.135.XX 现在知道每个角色登录的code值,怎么用sql语句查出符

MySQL中优化sql语句查询常用的30种方法

本篇文章是对MySQL中优化sql语句查询常用的30种方法进行了详细的分析介绍,需要的朋友参考下   1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以

不同条件查询-mysql 根据不同的条件查询出想要的结果,以List或Bean等形式返回。在线等,谢谢啦!!

问题描述 mysql 根据不同的条件查询出想要的结果,以List或Bean等形式返回.在线等,谢谢啦!! 有一张mySql表:tb_products,表结构如下图: 如何根据条件查询出结果集!条件如下图: 上图中查询条件可能有的为空!! Jvava 后台代码:用这种工具类:QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource()); 如何继续写呢??以List或Bean等形式返回.

从一个数据库表查询出结果集,然后把结果集存到另一个数据库,求方案

问题描述 从一个数据库表查询出结果集(不需要页面展示),然后把结果集存到另一个数据库,数据量可能很大,有什么好方案? 解决方案 解决方案二:你可以创建一个试图来保存你查询出来的结果集,自然也可以把你视图里面的结果集写入到其他的数据库解决方案三:可以将查询的结果导出,然后再导入另一个

hibernate可不可以根据一个实体类查询出数据库中是否存在该记录

问题描述 hibernate可不可以根据一个实体类查询出数据库中是否存在该记录 需要判断一条记录是否已经在数据库中是否存在重复记录,用hql的话传入的参数会比较多

sql语句-表T(A)包含正整数,可能有重复,构造一个SQL语句查询不在表T中的最小正整数

问题描述 表T(A)包含正整数,可能有重复,构造一个SQL语句查询不在表T中的最小正整数 表T(A)包含正整数,可能有重复,构造一个SQL语句查询不在表T中的最小正整数,需要考虑表T包含或不包含正整数1两种情况.不能编程实现.考虑了半天没有很好的思路,请大家指点则个 解决方案 DECLARE @minvalue INT = select min(A) from T IF minvalue > 1 return 1 ELSE DECLARE @maxvalue INT = select max(A

拟定一个场景,需要做多条件查询,假设先选择一个条件,查询出内容后

问题描述 拟定一个场景,需要做多条件查询,假设先选择一个条件,查询出内容后 再选择一个条件,如何保证第二次查询是在第一次查询的基础上.用的ss2h框架 解决方案 不明白,你说的这个 可以在第二次查询的时候把第一次查询的条件参数带上,联查就可以额

sql-用SERVER SQL语句查询出:按每月,每个料号,每个仓库.最后一次.入库数量(即最后时间),如下图:

问题描述 用SERVER SQL语句查询出:按每月,每个料号,每个仓库.最后一次.入库数量(即最后时间),如下图: 解决方案 以上都不是我想要的,我来结贴吧, 用开窗函数(不知哪位大神还有其它方法,此方法无法解决同一时间,同一仓库,同一料号的非常规象,因只取一条,不一定ID是最大值的): SELECT BillDate as 日期,MaterialNo as 料号 ,SHID as 仓库,StockQty as 出入数量 FROM ( SELECT BillDate,MaterialNo ,SH