码迷,mamicode.com
首页 > 数据库 > 详细

sql解惑 25 里程碑问题 答案

时间:2019-08-30 14:25:31      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:values   and   cte   creat   weight   com   --   div   cas   

sql解惑 25 里程碑问题 答案

create
table servicesschedule( shop_id char(3) not null, order_nbr char(10) not null, sch_seq number not null check(sch_seq in (1,2,3)), service_type char(2) not null, sch_date date, primary key(shop_id,order_nbr,sch_seq)); drop table sch_seq; create table sch_seq_desc( sch_seq number not null, sch_desc varchar2(20) ); insert into sch_seq_desc values(1,processed); insert into sch_seq_desc values(2,completed); insert into sch_seq_desc values(3,confirmed); insert into servicesschedule values(002,4155526710,1,01,date1994-07-16); insert into servicesschedule values(002,4155526710,2,01,date1994-07-30); insert into servicesschedule values(002,4155526710,3,01,date1994-10-01); insert into servicesschedule values(002,4155526711,1,01,date1994-07-16); insert into servicesschedule values(002,4155526711,2,01,date1994-07-30); insert into servicesschedule values(002,4155526711,3,01,null); select * from sch_seq_desc; select * from servicesschedule; select a.order_nbr, min(case when sch_desc = processed then sch_date end) as processed, min(case when sch_desc = completed then sch_date end) as completed, min(case when sch_desc = confirmed then sch_date end) as confirmed from servicesschedule a,sch_seq_desc b where a.sch_seq=b.sch_seq and service_type= 01 group by order_nbr ; ============================================================================================== ============================================================================================== SQL> select * from servicesschedule; SHOP_I ORDER_NBR SCH_SEQ SERV SCH_DATE ------ -------------------- ---------- ---- ------------ 002 4155526710 1 01 16-JUL-94 002 4155526710 2 01 30-JUL-94 002 4155526710 3 01 01-OCT-94 002 4155526711 1 01 16-JUL-94 002 4155526711 2 01 30-JUL-94 002 4155526711 3 01 6 rows selected. select * from sch_seq_desc; SCH_SEQ SCH_DESC ---------- ---------------------------------------- 1 processed 2 completed 3 confirmed select a.order_nbr, min(case when sch_desc = processed then sch_date end) as processed, min(case when sch_desc = completed then sch_date end) as completed, min(case when sch_desc = confirmed then sch_date end) as confirmed from servicesschedule a,sch_seq_desc b where a.sch_seq=b.sch_seq and service_type= 01 group by order_nbr ; ORDER_NBR PROCESSED COMPLETED CONFIRMED -------------------- ------------ ------------ ------------ 4155526710 16-JUL-94 30-JUL-94 01-OCT-94 4155526711 16-JUL-94 30-JUL-94

 

sql解惑 25 里程碑问题 答案

标签:values   and   cte   creat   weight   com   --   div   cas   

原文地址:https://www.cnblogs.com/chendian0/p/11434350.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!