MySQL 存储过程常用SQL语句收集
1,select curdate() /*2016-10-08*/
2,select date_sub(curdate(), INTERVAL 6 DAY) /*2016-10-02*/
3,case when then else 拼接条件查询:
WHERE
(CASE WHEN IFNULL(@belongCity,'0')='0' OR @belongCity='' THEN 1 ELSE
CAST(LOCATE(@belongCity,worker_order.belong_city) AS SIGNED )
END)=1
AND
(CASE WHEN IFNULL(@energyStation,'0')='0' THEN 1 ELSE
CAST(LOCATE(@energyStation,worker_order.repository_id) AS SIGNED )
END)=1
AND
(CASE WHEN IFNULL(@serviceStatioin,'0')='0' THEN 1 ELSE
CAST(LOCATE(@serviceStatioin,worker_order.station_id) AS SIGNED )
END)=1
AND
DATE_FORMAT(worker_order.create_time, '%Y-%m-%d') BETWEEN DATE_FORMAT(cast(@beginDateTime as datetime), '%Y-%m-%d') and DATE_FORMAT(cast(@endDateTime as datetime), '%Y-%m-%d')
GROUP BY DATE_FORMAT(worker_order.create_time,'%Y-%m-%d');
或者是这种:
WHERE LOCATE((CASE WHEN IFNULL(@belongCity,'0')='0' OR @belongCity='' THEN worker_order.belong_city ELSE @belongCity END),worker_order.belong_city)>0 AND LOCATE((CASE WHEN IFNULL(@energyStation,'0')='0' THEN worker_order.repository_id ELSE @energyStation END),worker_order.repository_id)>0 AND LOCATE((CASE WHEN IFNULL(@serviceStatioin,'0')='0' THEN worker_order.station_id ELSE @serviceStatioin END),worker_order.station_id)>0 AND DATE_FORMAT(worker_order.create_time, '%Y-%m-%d') BETWEEN DATE_FORMAT(cast(@beginDateTime as datetime), '%Y-%m-%d') and DATE_FORMAT(cast(@endDateTime as datetime), '%Y-%m-%d') GROUP BY DATE_FORMAT(worker_order.create_time,'%Y-%m-%d');
4,拼接starttime和endtime:
set @beginDateTime=( CASE WHEN ISNULL(beginDateTime) THEN date_sub(curdate(), INTERVAL 6 DAY) ELSE DATE_FORMAT(beginDateTime,'%Y-%m-%d') END ); /*起始时间*/ set @endDateTime=( CASE WHEN ISNULL(endDateTime) THEN curdate() ELSE DATE_FORMAT(endDateTime,'%Y-%m-%d') END ); /*结束时间*/
5,创建存储过程及调用存储过程:
DROP PROCEDURE IF EXISTS Pro_query_work_order_report;
CREATE PROCEDURE Pro_query_work_order_report (
IN cityCode varchar(32),/*城市code*/
IN energyStation INT,/*能源站code*/
IN serviceStatioin INT,/*网点code*/
IN beginDateTime datetime,/*开始时间*/
IN endDateTime datetime/*结束时间*/
)
BEGIN
SET @belongCity = cityCode;/*所属城市code*/
set @energyStation=energyStation; /*能源站code*/
set @serviceStatioin=serviceStatioin; /*站点code*/
set @beginDateTime=(
CASE
WHEN ISNULL(beginDateTime) THEN
date_sub(curdate(), INTERVAL 6 DAY)
ELSE
DATE_FORMAT(beginDateTime,'%Y-%m-%d')
END
); /*起始时间*/
set @endDateTime=(
CASE
WHEN ISNULL(endDateTime) THEN
curdate()
ELSE
DATE_FORMAT(endDateTime,'%Y-%m-%d')
END
); /*结束时间*/
select
DATE_FORMAT(worker_order.create_time,'%Y-%m-%d') as create_time,/*创建时间*/
( select count(0)
from biz_work_order tmp
where
DATE_FORMAT(tmp.create_time,'%Y-%m-%d')=DATE_FORMAT(worker_order.create_time,'%Y-%m-%d')
or (tmp.create_time<DATE_FORMAT(worker_order.create_time,'%Y-%m-%d') and tmp.`status` in (1,2,4))
)as should_change_worker_order,/*应换工单*/
(
select count(0)
from biz_work_order tmp
where
DATE_FORMAT(tmp.create_time,'%Y-%m-%d')=DATE_FORMAT(worker_order.create_time,'%Y-%m-%d')
) as new_add_work_order,/*新增工单*/
(
select count(0)
from biz_work_order tmp
where DATE_FORMAT(tmp.create_time,'%Y-%m-%d')=DATE_FORMAT(worker_order.create_time,'%Y-%m-%d') and tmp.`status`=3
)as today_finished_order,/*今天已完成工单*/
(
select count(0)
from biz_work_order tmp
where DATE_FORMAT(tmp.create_time,'%Y-%m-%d')=DATE_FORMAT(worker_order.create_time,'%Y-%m-%d') and tmp.`status` in(1,2,4)
) as today_unfinished_order,/*今天未完成订单*/
cast(
(select count(0)
from biz_work_order tmp
where DATE_FORMAT(tmp.create_time,'%Y-%m-%d')=DATE_FORMAT(worker_order.create_time,'%Y-%m-%d') and tmp.`status`=3
)
/
( select count(0)
from biz_work_order tmp
where
DATE_FORMAT(tmp.create_time,'%Y-%m-%d')=DATE_FORMAT(worker_order.create_time,'%Y-%m-%d')
or (tmp.create_time<DATE_FORMAT(worker_order.create_time,'%Y-%m-%d') and tmp.`status` in (1,2,4))
)
as decimal(18, 2)
) as success_percent /*成功率*/
from biz_work_order worker_order
WHERE
(CASE WHEN IFNULL(@belongCity,'0')='0' OR @belongCity='' THEN 1 ELSE
CAST(LOCATE(@belongCity,worker_order.belong_city) AS SIGNED )
END)=1
AND
(CASE WHEN IFNULL(@energyStation,'0')='0' THEN 1 ELSE
CAST(LOCATE(@energyStation,worker_order.repository_id) AS SIGNED )
END)=1
AND
(CASE WHEN IFNULL(@serviceStatioin,'0')='0' THEN 1 ELSE
CAST(LOCATE(@serviceStatioin,worker_order.station_id) AS SIGNED )
END)=1
AND
DATE_FORMAT(worker_order.create_time, '%Y-%m-%d') BETWEEN DATE_FORMAT(cast(@beginDateTime as datetime), '%Y-%m-%d') and DATE_FORMAT(cast(@endDateTime as datetime), '%Y-%m-%d')
GROUP BY DATE_FORMAT(worker_order.create_time,'%Y-%m-%d');
END;
6,调用:(mysql 使用call进行调用,且不支持默认参数;sql server 使用exec进行调用,支持默认参数,有默认值的参数可以不传)
call Pro_query_work_order_report('50010',NULL,270,date_sub(curdate(), INTERVAL 6 DAY),curdate())
发现mysql怎么数据量大了,还没有sql server好用。。。难道是我的幻觉么。。
MySQL 存储过程常用SQL语句收集的更多相关文章
- MySQL的常用SQL语句.md
修改密码 这是常见的大家一般都要用的 首先 安装成功了打开cmd --> mysql -u root -p -->输入你的密码 修改mysql root用户密码 格式 ...
- MySQL存储过程动态SQL语句的生成
用Mysql存储过程来完成动态SQL语句,使用存储过程有很好的执行效率: 现在有要求如下:根据输入的年份.国家.节假日类型查询一个节假日,我们可以使用一般的SQL语句嵌入到Java代码中,但是执行效率 ...
- Oracle系统表整理+常用SQL语句收集
欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...
- Oracle系统表整理+常用SQL语句收集(转载)
原文:https://www.cnblogs.com/jiangxinnju/p/5840420.html-- DBA/ALL/USER/V_$/GV_$/SESSION/INDEX开头的绝大部分都是 ...
- mysql整理-常用sql语句
一.常用sql show variables like 'character_set_client';#查询字符集 show databases;#列出所有的服务器上的数据库alter create ...
- MySQL之常用SQL语句
1) 分表之后统计数据的总量 SELECT (a0.total + a1.total + a2.total + a3.total + a4.total + a5.total + a6.total + ...
- php中一些常用的语句收集
清空数据表 truncate 表名; http://blog.knowsky.com/234205.htm 常用的SQL语句实例 http://blog.csdn.net/vericlong ...
- MySQL常用SQL语句/函数/存储过程
一句话总结 SELECT count(*) FROM user WHERE id>0 GROUP BY name HAVING count(*)>1 ORDER BY count(*)DE ...
- 剑指Offer——常用SQL语句、存储过程和函数
剑指Offer--常用SQL语句.存储过程和函数 常用SQL语句 1.在MySQL数据库建立多对多的数据表关系 2.授权.取消授权 grant.revoke grant select, insert, ...
随机推荐
- 前端面试题总结(一)HTML篇
前端面试题总结(一)HTML篇 一.iframe的优缺点? 缺点: 1.会阻塞主页面的onload事件(iframe和主页面共享链接池,而浏览器对相同域的链接有限制,所以会影响页面的并行加载). 解决 ...
- 在Node中使用ES7新特征——async、await
async与await两个关键字是在ES7中添加的新特征,旨在更加直观的书写异步函数,避免出现callback hell. callback hell是什么? readFileContents(&qu ...
- phoneGap的Android下编写phonegap 插件
一. javascript 端的编写 第一个参数 成功的回调函数 第二个参数 失败的回调函数 第三个参数 是插件的类名称,也就是后台java文件的类名 第四个参数 执行的 action 名称 ...
- Grunt中批量无损压缩图片插件--grunt-sprite
这是什么 这是一个帮助前端开发工程师将css代码中的切片合并成雪碧图的工具,它的主要功能是: 使用二叉树排列算法,对css文件进行处理,收集切片序列,生成雪碧图 在原css代码中为切片添加backgr ...
- 撸一个简单的MVVM例子
我个人以为mvvm框架里面最重要的一点就是VM这部分,它要与Model层建立联系,将Model层转换成可以被View层识别的数据结构:其次也要同View建立联系,将数据及时更新到View层上,并且响应 ...
- Paxos一致性算法(三)
一.概述: Google Chubby的作者说过这个世界只有一种一致性算法,那就Paxos算法,其他的都是残次品. 二.Paxos算法: 一种基于消息传递的高度容错性的一致性算法. Paxos:少数服 ...
- GPUImage源码解读之GPUImageFramebufferCache
简介 由于GPUImage添加滤镜可以形成一个FilterChain,因此,在渲染的过程中,可能会需要很多个FrameBuffer,但是正如上文所说,每生成一个FrameBuffer都需要占用一定的内 ...
- win10 pro 永久激活
win10 专业版永久激活 转自雨林木风 查看激活状态 ·"Windows+R"打开"运行"窗口,输入"slmgr.vbs -xpr"并点击 ...
- mysql复制表结构和数据
1.复制表结构: create table newName like oldName;//可以复制所有结构. 或者: create table newName select * from oldNam ...
- 基于Bootstrap Ace模板+bootstrap.addtabs.js的菜单
这几天研究了基于bootstrap Ace模板+bootstra.addtabs.js实现菜单的效果 参考了这个人的博客 https://www.cnblogs.com/landeanfen/p/76 ...