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(Debian)下安装与MySql的安装、卸载、配置及使用
参考资料:http://www.cnblogs.com/xusir/p/3334217.html 以下是简要记录. 一.安装 安装:apt-get install mysql-server mysql ...
- chrome 插件开发
写在开头: 相当有意思的UI界面,编码实现,浏览速度.对于一天浏览器使用超过10个小时的人来说,能够定制自己的浏览器,是相当的具有诱惑力. Getting Started 1:目前不支持标准发布版本的 ...
- hdu 2018 母牛的故事
#include<stdio.h> int main(void) { int i,n,j,k; long long narr[60]; narr[1]=1; narr[2]=2; narr ...
- hdu 1202 The calculation of GPA
感觉本题没有什么好解释的,已知公式,直接编程即可. 1.统计所有 科目的学分 得到总学分 2.统计所有 成绩对应的绩点*对应的学分即可(如果成绩==-1直接continue,不进行统计),得到总绩点. ...
- windows2003安全加固脚本
@echo off title= Windwos/index.html' target='_blank'>Windows Security echo. echo **************** ...
- ARP欺骗病毒,网页“篡改”,注入iframe代码!
---------------权威资料看这里--------------- 清华大学信息网络工程研究中心-中国教育和科研计算机网应急响应组<ARP 欺骗网页劫持攻击分析>PDF文件,直接I ...
- git windows中文目录乱码问题解决
转自:http://blog.chinaunix.net/uid-9789774-id-3080448.html Git的Windows版本Msysgit对中文的支持不够好 当使用时,会出现以下三种情 ...
- cocos基础教程(9)声音和音效
使用音效引擎 我们可以使用Cocos2d-x自带的CocosDension库来使用声音引擎.CocosDesion实现了简单易用的SimpleAudioEngine类,为了使用它,我们只需引入他的头文 ...
- LR测试心得
====================测试方案—优化前—优化后 每一项至少两份报告==================================== url录制方式录制出来的脚本mode是HT ...
- MBProgressHUD使用
//方式1.直接在View上show HUD = [[MBProgressHUD showHUDAddedTo:self.view animated:YES] retain]; HUD.delegat ...