SQL 高级查询
WITH FINISHMAINT (FRAMENO,DELIVEREDDATE) AS
(
SELECT DISTINCT RP.FRAMENO, MAX(PRC.DELIVEREDDATE) OVER(PARTITION BY RP.FRAMENO) FROM RT_REPAIR RP
LEFT JOIN RT_REPAIRPART P ON RP.REPAIRNO=P.REPAIRNO
LEFT JOIN RT_RepairProcess PRC ON RP.REPAIRNO=PRC.REPAIRNO
WHERE RP.StatusCode = ''AND value(RP.Deleted,'') = ''
AND P.PARTNO LIKE '15400%' AND VALUE(P.ActualOutQty,0)-VALUE(P.ReturnedQty,0)>0
), DELAYTASKS(FRAMENO,NEXTSTEPTIME) AS
(
SELECT DEF.FRAMENO,RECDT.NEXTSTEPTIME FROM RT_CALLTASKRECDT RECDT
LEFT JOIN RT_CALLTASKDEF DEF ON RECDT.TASKID=DEF.TASKID
WHERE RECDT.Conclusion='' AND RECDT.NextStepTime IS NOT NULL AND YEAR(RECDT.NextStepTime) = 2015
AND (DEF.CANCELED = '' OR (DEF.CANCELED = '' AND RECDT.NEXTSTEPTIME > DEF.CANCELTIME)
)
) SELECT COUNT(1) AS DELAYTASKCOUNT FROM DELAYTASKS LEFT JOIN FINISHMAINT ON DELAYTASKS.FRAMENO=FINISHMAINT.FRAMENO
WHERE FINISHMAINT.DELIVEREDDATE > DELAYTASKS.NEXTSTEPTIME ------------------------------------------------------
WITH FINISHMAINT (FRAMENO,DELIVEREDDATE) AS
(
SELECT DISTINCT RP.FRAMENO, MAX(PRC.DELIVEREDDATE) OVER(PARTITION BY RP.FRAMENO) FROM RT_REPAIR RP
LEFT JOIN RT_REPAIRPART P ON RP.REPAIRNO=P.REPAIRNO
LEFT JOIN RT_RepairProcess PRC ON RP.REPAIRNO=PRC.REPAIRNO
WHERE RP.StatusCode = ''AND value(RP.Deleted,'') = ''
AND P.PARTNO LIKE '15400%' AND VALUE(P.ActualOutQty,0)-VALUE(P.ReturnedQty,0)>0
), DELAYTASKS(FRAMENO,NEXTSTEPTIME) AS
(
SELECT DEF.FRAMENO,RECDT.NEXTSTEPTIME FROM RT_CALLTASKRECDT RECDT
LEFT JOIN RT_CALLTASKDEF DEF ON RECDT.TASKID=DEF.TASKID
WHERE RECDT.Conclusion='' AND RECDT.NextStepTime IS NOT NULL AND YEAR(RECDT.NextStepTime) = 2015
AND (DEF.CANCELED = '' OR (DEF.CANCELED = '' AND RECDT.NEXTSTEPTIME > DEF.CANCELTIME)
)
) SELECT MONTH(DELAYTASKS.NEXTSTEPTIME) MON,COUNT(1) AS DELAYTASKCOUNT FROM DELAYTASKS LEFT JOIN FINISHMAINT ON DELAYTASKS.FRAMENO=FINISHMAINT.FRAMENO
WHERE FINISHMAINT.DELIVEREDDATE > DELAYTASKS.NEXTSTEPTIME
GROUP BY MONTH(DELAYTASKS.NEXTSTEPTIME)
-----------------------------------------
WITH FINISHMAINT (FRAMENO,DELIVEREDDATE) AS
(
SELECT DISTINCT RP.FRAMENO, MAX(PRC.DELIVEREDDATE) OVER(PARTITION BY RP.FRAMENO) FROM RT_REPAIR RP
LEFT JOIN RT_REPAIRPART P ON RP.REPAIRNO=P.REPAIRNO
LEFT JOIN RT_RepairProcess PRC ON RP.REPAIRNO=PRC.REPAIRNO
WHERE RP.StatusCode = ''AND value(RP.Deleted,'') = ''
AND P.PARTNO LIKE '15400%' AND VALUE(P.ActualOutQty,0)-VALUE(P.ReturnedQty,0)>0
), DELAYTASKS(FRAMENO,NEXTSTEPTIME) AS
(
SELECT DEF.FRAMENO,RECDT.NEXTSTEPTIME FROM RT_CALLTASKRECDT RECDT
LEFT JOIN RT_CALLTASKDEF DEF ON RECDT.TASKID=DEF.TASKID
WHERE RECDT.Conclusion='' AND RECDT.NextStepTime IS NOT NULL AND YEAR(RECDT.NextStepTime) = 2015
AND (DEF.CANCELED = '' OR (DEF.CANCELED = '' AND RECDT.NEXTSTEPTIME > DEF.CANCELTIME)
)
) SELECT MON,SUM(DELAYTASKCOUNT) AS DELAYTASKCOUNT FROM (
SELECT 1 AS MON,0 AS DELAYTASKCOUNT FROM SYSIBM.SYSDUMMY1
UNION ALL
SELECT 2 AS MON,0 AS DELAYTASKCOUNT FROM SYSIBM.SYSDUMMY1
UNION ALL
SELECT 3 AS MON,0 AS DELAYTASKCOUNT FROM SYSIBM.SYSDUMMY1
UNION ALL
SELECT 4 AS MON,0 AS DELAYTASKCOUNT FROM SYSIBM.SYSDUMMY1
UNION ALL
SELECT 5 AS MON,0 AS DELAYTASKCOUNT FROM SYSIBM.SYSDUMMY1
UNION ALL
SELECT 6 AS MON,0 AS DELAYTASKCOUNT FROM SYSIBM.SYSDUMMY1
UNION ALL
SELECT 7 AS MON,0 AS DELAYTASKCOUNT FROM SYSIBM.SYSDUMMY1
UNION ALL
SELECT 8 AS MON,0 AS DELAYTASKCOUNT FROM SYSIBM.SYSDUMMY1
UNION ALL
SELECT 9 AS MON,0 AS DELAYTASKCOUNT FROM SYSIBM.SYSDUMMY1
UNION ALL
SELECT 10 AS MON,0 AS DELAYTASKCOUNT FROM SYSIBM.SYSDUMMY1
UNION ALL
SELECT 11 AS MON,0 AS DELAYTASKCOUNT FROM SYSIBM.SYSDUMMY1
UNION ALL
SELECT 12 AS MON,0 AS DELAYTASKCOUNT FROM SYSIBM.SYSDUMMY1
UNION ALL
SELECT MONTH(DELAYTASKS.NEXTSTEPTIME) MON,COUNT(1) AS DELAYTASKCOUNT FROM DELAYTASKS LEFT JOIN FINISHMAINT ON DELAYTASKS.FRAMENO=FINISHMAINT.FRAMENO WHERE FINISHMAINT.DELIVEREDDATE > DELAYTASKS.NEXTSTEPTIME
GROUP BY MONTH(DELAYTASKS.NEXTSTEPTIME)
) T GROUP BY MON --------------------------------------------------
WITH FINISHMAINT (FRAMENO,DELIVEREDDATE) AS
(
SELECT DISTINCT RP.FRAMENO, MAX(PRC.DELIVEREDDATE) OVER(PARTITION BY RP.FRAMENO) FROM RT_REPAIR RP
LEFT JOIN RT_REPAIRPART P ON RP.REPAIRNO=P.REPAIRNO
LEFT JOIN RT_REPAIRPROCESS PRC ON RP.REPAIRNO=PRC.REPAIRNO
WHERE RP.STATUSCODE = ''AND VALUE(RP.DELETED,'') = ''
AND P.PARTNO LIKE '15400%' AND VALUE(P.ACTUALOUTQTY,0)-VALUE(P.RETURNEDQTY,0)>0
), TBACK(FRAMENO,EXPECTSTARTDATE) AS
(
SELECT DEF.FRAMENO,DEF.EXPECTSTARTDATE FROM RT_CALLTASKDEF DEF
WHERE DEF.EXPECTSTARTDATE >= '2014-12-01' AND DEF.EXPECTSTARTDATE<='2015-11-30'
) SELECT MONTH(TBACK.EXPECTSTARTDATE + 1 MONTH) AS MON, COUNT(1) AS TBACKCOUNT FROM TBACK LEFT JOIN FINISHMAINT ON TBACK.FRAMENO=FINISHMAINT.FRAMENO
WHERE DATE(FINISHMAINT.DELIVEREDDATE) >= TBACK.EXPECTSTARTDATE-7 DAYS AND DATE(FINISHMAINT.DELIVEREDDATE) <= TBACK.EXPECTSTARTDATE +30 DAYS
GROUP BY MONTH(TBACK.EXPECTSTARTDATE + 1 MONTH)
------------------------------------------------- WITH FINISHMAINT (FRAMENO,DELIVEREDDATE) AS
(
SELECT DISTINCT RP.FRAMENO, MAX(PRC.DELIVEREDDATE) OVER(PARTITION BY RP.FRAMENO) FROM RT_REPAIR RP
LEFT JOIN RT_REPAIRPART P ON RP.REPAIRNO=P.REPAIRNO
LEFT JOIN RT_REPAIRPROCESS PRC ON RP.REPAIRNO=PRC.REPAIRNO
WHERE RP.STATUSCODE = ''AND VALUE(RP.DELETED,'') = ''
AND P.PARTNO LIKE '15400%' AND VALUE(P.ACTUALOUTQTY,0)-VALUE(P.RETURNEDQTY,0)>0
), TBACK(FRAMENO,EXPECTSTARTDATE,TASKID) AS
(
SELECT DEF.FRAMENO,DEF.EXPECTSTARTDATE,DEF.TASKID FROM RT_CALLTASKDEF DEF
WHERE DEF.EXPECTSTARTDATE >= '2014-12-01' AND DEF.EXPECTSTARTDATE<='2015-11-30'
), TIMEPERTASK (TASKID,CALLTIMES) AS
(
SELECT DEF.TASKID, COUNT(1) AS CALLTIMES
FROM RT_CALLTASKRECDT RECDT LEFT JOIN RT_CALLTASKDEF DEF ON RECDT.TASKID=DEF.TASKID
WHERE RECDT.ACTIONMETHOD='PH'
GROUP BY DEF.TASKID
), ABC(TASKID, EXPECTSTARTDATE) AS
(
SELECT TBACK.TASKID,TBACK.EXPECTSTARTDATE FROM TBACK LEFT JOIN FINISHMAINT ON TBACK.FRAMENO=FINISHMAINT.FRAMENO
WHERE DATE(FINISHMAINT.DELIVEREDDATE) >= TBACK.EXPECTSTARTDATE-7 DAYS AND DATE(FINISHMAINT.DELIVEREDDATE) <= TBACK.EXPECTSTARTDATE +30 DAYS
) SELECT MONTH(EXPECTSTARTDATE + 1 MONTH) AS MON, SUM(TIMEPERTASK.CALLTIMES) AS CALLTIMES FROM ABC INNER JOIN TIMEPERTASK ON ABC.TASKID=TIMEPERTASK.TASKID
GROUP BY MONTH(EXPECTSTARTDATE + 1 MONTH)
SQL 高级查询的更多相关文章
- SQL 高级查询(层次化查询,递归)
SQL 高级查询 前面我们写了一下 SQL 的极简入门,今天来说点高级查询.没看到的朋友可以点击下面链接查看. 1 小时 SQL 极速入门(一) 1 小时 SQL 极速入门(二) 1 小时 SQL 极 ...
- SQL高级查询技巧
SQL高级查询技巧 1.UNION,EXCEPT,INTERSECT运算符 A,UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重 ...
- SQL高级查询基础
1.UNION,EXCEPT,INTERSECT运算符 A,UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表. ...
- MYSQL SQL高级查询技巧
1.UNION,EXCEPT,INTERSECT运算符 A,UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表. ...
- SQL————高级查询
高级查询 --连接查询 select * from 表1,表2 ————形成笛卡尔积 select * from 表1,表2 where 表1.主键=表2.外键 ————主外键位置可以互换 --jo ...
- SQL高级查询
高级查询: 一.多表链接 1,普通查询 select * from 表名,表名 where 表名.列名 = 表名.列名 2,join链接 select * from 表名 join 表名 on 表名. ...
- SQL高级查询——50句查询(含答案) ---参考别人的,感觉很好就记录下来留着自己看。
--一个题目涉及到的50个Sql语句 --(下面表的结构以给出,自己在数据库中建立表.并且添加相应的数据,数据要全面些. 其中Student表中,SId为学生的ID) ---------------- ...
- SQL高级查询技巧(两次JOIN同一个表,自包含JOIN,不等JOIN)
掌握了这些,就比较高级啦 Using the Same Table Twice 如下面查询中的branch字段 SELECT a.account_id, e.emp_id, b_a.name open ...
- SQL高级查询——50句查询(含答案)
-一个题目涉及到的50个Sql语句 --(下面表的结构以给出,自己在数据库中建立表.并且添加相应的数据,数据要全面些. 其中Student表中,SId为学生的ID) ----------------- ...
- Oracle数据库——SQL高级查询
一.涉及内容 1.掌握SELECT语句的多表连接查询. 2.掌握SELECT语句的子查询. 二.具体操作 (一)根据Oracle数据库scott方案下的emp表和dept表,完成下列操作: 1.查询所 ...
随机推荐
- Linux 下模拟Http 的get or post请求(curl和wget两种方法)
一.get请求: 1.使用curl命令: curl "http://www.baidu.com" 如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地curl -i & ...
- XSS 自动化检测 Fiddler Watcher & x5s & ccXSScan 初识
一.标题:XSS 自动化检测 Fiddler Watcher & x5s & ccXSScan 初识 automated XSS testing assistant 二.引言 ...
- jQuery.isEmptyObject() 函数详解
所谓"空对象",即不包括任何可枚举(自定义)的属性.简而言之,就是该对象没有属性可以通过for...in迭代. 该函数属于全局jQuery对象. 语法 jQuery 1.4 新增该 ...
- centos linux从无到有安装wordpress
序:本博客从无到有搭建wordpress,包括从服务器和域名购买,会将步骤一步一步记录下来.如果你也是新手,那你有福了,因为我的系统是centos,对号入座啊. 目录 一.准备域名和服务器一.安装ph ...
- ReactiveCocoa 和 MVVM 入门 (转)
翻译自ReactiveCocoa and MVVM, an Introduction. 文中引用的 Gist 可能无法显示.为了和谐社会, 请科学上网. MVC 任何一个正经开发过一阵子软件的人都熟悉 ...
- 基于Redis的短链接设计思路
[Markdown阅读][1] 今天上班的时候收到一个需要短链接的需求,之前的做法都是使用了新浪的短链接API(https://api.weibo.com/2/short_url/shorten.js ...
- QQ微信与智能家电连接一起 小马哥"连接一切"野心凸显
昨日,彭博社对于海南举行的腾讯全球合作伙伴大会进行了报道,文章指出腾讯公司正在发力移动端,将其即时通讯工具QQ和微信与烤箱.电视.空调等其他家电连接在一起.小马哥"连接一切"的野心 ...
- editplus快捷键大全之editplus文件快捷键
editplus快捷键大全之editplus文件快捷键 新建普通文本 Ctrl+N 新建普通的文本文档 新建浏览器窗口 Ctrl+Shift+B 新建浏览器窗口 新建 HTML 页 Ctrl+Shif ...
- URL编码表,URL编码大全
url编码是一种浏览器用来打包表单输入的格式. 定义 url编码是一种浏览器用来打包表单输入的格式.浏览器从表单中获取所有的name和其中的值 ,将它们以name/value参数编码(移去那些不能传送 ...
- [Effective JavaScript 笔记] 第6条:了解分号插入的局限
分号可以省略 js可以在语句结束不强制加分号.(建议还是添加,不添加分号往往会出现不易发现的BUG) function Point(x,y){ this.x=x||0; this.y=y||0; } ...