Mybatis从数据库中统计周一到周日的数量

Mybatis从数据库中统计周一到周日的数量

在这里插入图片描述

 SELECT
            ifnull( table2.count, 0 ) BeatNum
            FROM
                (
                    SELECT
                        @i := @i + 1 AS 'NO',
                        DATE (DATE_ADD(#{startDate}, INTERVAL @i DAY )) AS DATE
                    FROM
                        tableName,
                        ( SELECT @i := - 1 ) t
                    WHERE @i DATEDIFF(#{endDate},#{startDate})) table1
            LEFT JOIN (
                    SELECT
                        DATE_FORMAT( i.CREATE_DATETIME, '%Y-%m-%d' ) AS today,
                        ifnull( count( 1 ), 0 ) AS count
                    FROM
                        tableName j
                    INNER JOIN tableName i ON j.dispatch_id = i.id
                    WHERE
                        i.is_active = '1'
                    AND j.task_type = #{taskType}
                    AND i.house_code = #{houseCode}
                    AND i.dispatch_status = 'Finished'
                    AND i.create_datetime BETWEEN #{startDate} AND #{endDate}
                    GROUP BY
                        today
            ) table2 ON table2.today = table1.DATE
            ORDER BY
            table1.DATE ASC

@i := @i + 1:定义一个i变量每次加1

date_add()常常用户在Mysql的sql中实现对日期类型的操作,比如增加或者减少,但是不改变原来的数据,只是对查询的数据做处理,这里展示使用示例:

DATE_ADD(date,INTERVAL expr unit)

interval是固定标志,expr 表示数量,可以为正负,表示加减,unit表示日期类型 可以是yy,ww,dd等分别表示,年,周,天等

DATEDIFF:函数用于返回两个日期的天数

table1,table2:临时表名

DATE_FORMAT:日期格式化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值