mySql——case when else ....demo
DROP PROCEDURE IF EXISTS Pro_query_change_charge_by_layer_report;
CREATE PROCEDURE Pro_query_change_charge_by_layer_report (
IN cityCode varchar(32),/*城市code*/
IN areaCode varchar(16),/*区域code*/
IN energyStation INT,/*能源站code*/
IN beginDateTime datetime,/*开始时间*/
IN endDateTime datetime/*结束时间*/
)
BEGIN
SET @belongCity = cityCode;/*所属城市code*/
set @area=areaCode;/*区域*/
set @energyStation=energyStation; /*能源站code*/
set @beginDateTime=(
CASE
WHEN ISNULL(beginDateTime) or beginDateTime='' THEN
date_sub(curdate(), INTERVAL 6 DAY)
ELSE
DATE_FORMAT(beginDateTime,'%Y-%m-%d')
END
); /*起始时间*/
set @endDateTime=(
CASE
WHEN ISNULL(endDateTime) or endDateTime='' THEN
curdate()
ELSE
DATE_FORMAT(endDateTime,'%Y-%m-%d')
END
); /*结束时间*/
/*结束时间*/
select
v_worklist.station_name,/*站点名称*/
v_worklist.station_id,/*网点id*/
sum(
case when (v_worklist.create_time BETWEEN @beginDateTime and @endDateTime)
or
(v_worklist.create_time>@beginDateTime and (v_worklist.end_time<@endDateTime or v_worklist.end_time is NULL ))
then 1
else 0
end
) as shouldChangeOrder,/*应换工单*/
sum(
case when v_worklist.create_time BETWEEN @beginDateTime and @endDateTime
then 1
else 0
end
) as newAddOrder,/*新增工单*/
sum(
case when v_worklist.end_time BETWEEN @beginDateTime and @endDateTime
then 1
else 0
end
) as realChangeOrder/*实换工单*/
from v_queryworkorderlist v_worklist
WHERE
(CASE WHEN IFNULL(@belongCity,'0')='0' OR @belongCity='' THEN 1 ELSE
CAST(LOCATE(@belongCity,v_worklist.belong_city) AS SIGNED )
END)=1
AND
(CASE WHEN IFNULL(@area,'0')='0' or @area='' THEN 1 ELSE
CAST(LOCATE(@area,v_worklist.belong_area) AS SIGNED )
END)=1
AND
(CASE WHEN IFNULL(@energyStation,'0')='0' THEN 1 ELSE
CAST(LOCATE(@energyStation,v_worklist.repository_id) AS SIGNED )
END)=1
group by v_worklist.station_id;
END;
mySql——case when else ....demo的更多相关文章
- MVC jsp+servlet+javabean 连接Mysql数据库測试demo
本文介绍的是怎样使用MVC架构去实现jsp+servlet+javabean连接数据库 首先我们应该了解什么是MVC: MVC包含三个部分 : ①View:由各种JSP页面组成. ②Controlle ...
- springboot成神之——springboot+mybatis+mysql搭建项目简明demo
springboot+mybatis+mysql搭建项目简明demo 项目所需目录结构 pom.xml文件配置 application.properties文件配置 MyApplication.jav ...
- 阳性比例 mysql CASE UNION ALL
阳性比例 mysql CASE UNION ALL SELECT t.*,t.type_0/all_ FROM ( SELECT FROM_UNIXTIME(create_time,'%Y-%m-%d ...
- mysql case when
下面为您举例说明了三种mysql中case when语句的使用方法,供您参考学习,如果您对mysql中case when语句使用方面感兴趣的话,不妨一看. 1. select name, case w ...
- mysql case when 条件过滤
[1].[代码] 使用CASE WHEN进行字符串替换处理 跳至 [1] [2] [3] [4] ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2 ...
- mysql case when group by实例
mysql 中类似php switch case 的语句. select xx字段, case 字段 when 条件1 then 值1 when 条件2 then 值2 else 其他值 END 别名 ...
- mysql,mycat的demo
一直都是使用公司架构师提供的mycat,今天得空自己尝试了以下: 1.首先安装jdk(官网建议1.7及以上版本),mysql(我安装的是5.7.19-0ubuntu0.16.04.1,设置账号密码为r ...
- mysql case的语法
测试表:team 第一种语法: CASE case_value WHEN when_value THEN statement_list [WHEN when_value THEN statement_ ...
- 使用开源框架Sqlsugar结合mysql开发一个小demo
一.Sqlsugar简介 1.性能上有很大优势 sqlsugar是性能最好的ORM之一,具有超越Dapper的性能 ,走的是EMIT够构中间语言动态编译到程序集,完成高性能的实体绑定,达到原生水平. ...
随机推荐
- oracle中PLSQL存储过程中如何使用逗号分隔的集合(逗号分隔字符串转换为一个集合)
原文: https://blogs.oracle.com/aramamoo/entry/how_to_split_comma_separated_string_and_pass_to_in_claus ...
- apache log4j-1.2.15的使用
1.这个log4j的下载 下载 http://www.apache.org/dyn/closer.cgi/logging/log4j/1.2.15/apache-log4j-1.2.15.zip 2. ...
- table中实现数据上移下移效果
html 由于vue+Element项目中的table,没有开放的上移下移的api,但是能对数据操作,故思路为数组中的一条数据,再重新添加一条数据,办法有点笨,但是好歹也是实现了,望有好的办法的,请留 ...
- mongodb安装(比较全一点)
Linux下MongoDB安装和配置详解 转:https://www.cnblogs.com/pfnie/articles/6759105.html 一.创建MongoDB的安装路径 在/usr/l ...
- 相机姿态估计(Pose Estimation)
(未完待续.....) 根据针孔相机模型,相机成像平面一点的像素坐标p和该点在世界坐标系下的3D坐标P有$p=KP$的关系,如果用齐次坐标表示则有: $$dp=KP$$ 其中d是空间点深度(为了将p的 ...
- 在ASP.NET Core中怎么使用HttpContext.Current (转载)
一.前言 我们都知道,ASP.NET Core作为最新的框架,在MVC5和ASP.NET WebForm的基础上做了大量的重构.如果我们想使用以前版本中的HttpContext.Current的话,目 ...
- 使用C#的AssemblyResolve事件和TypeResolve事件动态解析加载失败的程序集
我们知道反射是 依赖注入 模式的基础,依赖注入要求只在项目中引用定义接口的程序集,而不引用接口实现类的程序集,因为接口实现类的程序集应该是通过反射来动态加载的,这样才能保证接口与其实现类之间的松耦合. ...
- 在js中获取request域中的内容
1.可以使用小脚本<%%>实现: var pro_id=<%request.getPro_id()%>; 2.使用隐藏域实现: <input type="hid ...
- Process.waitFor()导致主线程堵塞问题
今日开发的时候使用jdk自带的运行时变量 RunTime.getRunTime() 去执行bash命令.因为该bash操作耗时比较长,所以使用了Process.waitFor()去等待子线程运行结束. ...
- 查询sqlserver 表结构呀
SQL Server里查询表结构命令 对于SQL Server数据库有两种方法查询表结构 第一种方法 sp_help Accounts_Users 其中Accounts_Users 表示表名 ...