代码
--
Create table
create table CUS_SECTION
(
SECTION_ID NUMBER ,
SECTION_NAME VARCHAR2 ( 10 ),
WORK_TIME NUMBER ,
UPDATE_USERID VARCHAR2 ( 10 ),
UPDATE_DATE DATE default sysdate,
SECTION_DESC VARCHAR2 ( 20 ),
SECTION_DEMO NUMBER ,
SEQ NUMBER ,
SHIFT_ID NUMBER ,
SECTION_SEQ NUMBER
)
select to_char(sysdate, ' yyyy-mm-dd hh:mi:ss ' )now_date,
to_char(sysdate + ( 30 / 24 / 60 ), ' yyyy-mm-dd hh:mi:ss ' ) new_date from dual;
select to_char(sysdate, ' yyyy-mm-dd hh:mi:ss ' )now_date,
to_char(sysdate - ( 30 / 24 / 60 ), ' yyyy-mm-dd hh:mi:ss ' ) new_date from dual;
select add_months(sysdate, - 4 ) from dual;
select months_between(sysdate,to_date( ' 2008-01-01 02:00:00 ' , ' yyyy-mm-dd hh:mi:ss ' )) result from dual;
select add_months(sysdate, 2 * 12 ) two_years_later from dual;
select last_day(sysdate) last_day,last_day(sysdate) + 1 fisrt_day from dual;
select next_day(sysdate, 4 ) from dual;
select to_char(sysdate, ' yyyy-mm-dd hh:mi:ss ' ) now_date,
to_char( round (sysdate), ' yyyy-mm-dd hh:mi:ss ' ) round_date,
to_char(trunc(sysdate), ' yyyy-mm-dd hh:mi:ss ' ) trunc_date
from dual;
select to_char(sysdate, ' yyyy-mm-dd hh:mi:ss ' ) now_date,
to_char( round (sysdate, ' hh24 ' ), ' yyyy-mm-dd hh:mi:ss ' ) round_date,
to_char(trunc(sysdate, ' hh24 ' ), ' yyyy-mm-dd hh:mi:ss ' ) trunc_date
from dual;
select section_id,section_name,shift_id,
sum (work_time) section_times,
sum ( sum (work_time)) over (partition by shift_id) shift_times
from cus_section
group by section_id,section_name,shift_id
select section_id,section_name,shift_id,
sum (work_time) section_times,
sum ( sum (work_time)) over (partition by shift_id) shift_times,
sum ( sum (work_time)) over () all_times
from cus_section
group by section_id,section_name,shift_id
select section_id,section_name,
sum (work_time) section_times,
rank() over ( order by sum (work_time) desc ) rank,
dense_rank() over ( order by sum (work_time) desc ) dense_rank,
row_number() over ( order by sum (work_time) desc ) row_number
from cus_section
group by section_id,section_name
select section_id,section_name,
sum (work_time) section_times,
rank() over (partition by shift_id order by sum (work_time) desc nulls last) rank,
dense_rank() over (partition by shift_id order by sum (work_time) desc ) dense_rank,
row_number() over (partition by shift_id order by sum (work_time) desc ) row_number
from cus_section
group by section_id,section_name,shift_id
select min (section_id) keep(dense_rank first order by sum (work_time) desc ) first,
min (section_id) keep(dense_rank last order by sum (work_time) desc ) last
from cus_section
group by section_id
select section_id,section_name,shift_id,
ntile( 5 ) over ( order by shift_id) shift_times
from cus_section
group by section_id,section_name,shift_id
select section_id,section_name,
sum (work_time) section_times,
sum ( sum (work_time)) over ( order by section_id rows between unbounded preceding and unbounded following) sum_shift_times
from cus_section
group by section_id,section_name,shift_id
select section_id,section_name,
sum (work_time) section_times,
sum ( sum (work_time)) over ( order by section_id rows between 1 preceding and unbounded following) sum_shift_times
from cus_section
group by section_id,section_name,shift_id
select section_id,section_name,
sum (work_time) section_times,
sum ( sum (work_time)) over ( order by section_id rows between unbounded preceding and current row) sum_shift_times,
avg ( sum (work_time)) over ( order by section_id rows between unbounded preceding and current row) avg_shift_times
from cus_section
group by section_id,section_name,shift_id
select trunc(update_date) day ,
sum (work_time) section_times,
avg ( sum (work_time)) over ( order by trunc(update_date) range between interval ' 2 ' day preceding
and interval ' 2 ' day following) five_shift_times
from cus_section
group by update_date
select section_id,section_name,shift_id,
sum (work_time) section_times,
sum ( sum (work_time)) over (partition by shift_id) shift_times ,
round (ratio_to_report( sum (work_time)) over (partition by shift_id), 2 ) shift_present
from cus_section
group by section_id,section_name,shift_id
select * from sys_bom
where bom_id = 1000000135 ;
select * from sys_bom
where item_part_id = 1000000135
select distinct level ,bom_id,item_part_id from sys_bom
start with bom_id = 1000000135 connect by prior bom_id = item_part_id order by bom_id;
select distinct level ,bom_id,item_part_id from sys_bom
start with bom_id = 1000000135 connect by bom_id = prior item_part_id order by level
select count ( distinct level ) from sys_bom
start with bom_id = 1000000135 connect by bom_id = prior item_part_id
select level , count ( level ) from sys_bom
start with bom_id = 1000000135 connect by bom_id = prior item_part_id
group by level
select level ,bom_id,item_part_id from sys_bom where level = 2
start with bom_id = 1000000135 connect by bom_id = prior item_part_id
select level ,bom_id,item_part_id from sys_bom
start with bom_id = 1000000135 connect by bom_id = prior item_part_id
create table CUS_SECTION
(
SECTION_ID NUMBER ,
SECTION_NAME VARCHAR2 ( 10 ),
WORK_TIME NUMBER ,
UPDATE_USERID VARCHAR2 ( 10 ),
UPDATE_DATE DATE default sysdate,
SECTION_DESC VARCHAR2 ( 20 ),
SECTION_DEMO NUMBER ,
SEQ NUMBER ,
SHIFT_ID NUMBER ,
SECTION_SEQ NUMBER
)
select to_char(sysdate, ' yyyy-mm-dd hh:mi:ss ' )now_date,
to_char(sysdate + ( 30 / 24 / 60 ), ' yyyy-mm-dd hh:mi:ss ' ) new_date from dual;
select to_char(sysdate, ' yyyy-mm-dd hh:mi:ss ' )now_date,
to_char(sysdate - ( 30 / 24 / 60 ), ' yyyy-mm-dd hh:mi:ss ' ) new_date from dual;
select add_months(sysdate, - 4 ) from dual;
select months_between(sysdate,to_date( ' 2008-01-01 02:00:00 ' , ' yyyy-mm-dd hh:mi:ss ' )) result from dual;
select add_months(sysdate, 2 * 12 ) two_years_later from dual;
select last_day(sysdate) last_day,last_day(sysdate) + 1 fisrt_day from dual;
select next_day(sysdate, 4 ) from dual;
select to_char(sysdate, ' yyyy-mm-dd hh:mi:ss ' ) now_date,
to_char( round (sysdate), ' yyyy-mm-dd hh:mi:ss ' ) round_date,
to_char(trunc(sysdate), ' yyyy-mm-dd hh:mi:ss ' ) trunc_date
from dual;
select to_char(sysdate, ' yyyy-mm-dd hh:mi:ss ' ) now_date,
to_char( round (sysdate, ' hh24 ' ), ' yyyy-mm-dd hh:mi:ss ' ) round_date,
to_char(trunc(sysdate, ' hh24 ' ), ' yyyy-mm-dd hh:mi:ss ' ) trunc_date
from dual;
select section_id,section_name,shift_id,
sum (work_time) section_times,
sum ( sum (work_time)) over (partition by shift_id) shift_times
from cus_section
group by section_id,section_name,shift_id
select section_id,section_name,shift_id,
sum (work_time) section_times,
sum ( sum (work_time)) over (partition by shift_id) shift_times,
sum ( sum (work_time)) over () all_times
from cus_section
group by section_id,section_name,shift_id
select section_id,section_name,
sum (work_time) section_times,
rank() over ( order by sum (work_time) desc ) rank,
dense_rank() over ( order by sum (work_time) desc ) dense_rank,
row_number() over ( order by sum (work_time) desc ) row_number
from cus_section
group by section_id,section_name
select section_id,section_name,
sum (work_time) section_times,
rank() over (partition by shift_id order by sum (work_time) desc nulls last) rank,
dense_rank() over (partition by shift_id order by sum (work_time) desc ) dense_rank,
row_number() over (partition by shift_id order by sum (work_time) desc ) row_number
from cus_section
group by section_id,section_name,shift_id
select min (section_id) keep(dense_rank first order by sum (work_time) desc ) first,
min (section_id) keep(dense_rank last order by sum (work_time) desc ) last
from cus_section
group by section_id
select section_id,section_name,shift_id,
ntile( 5 ) over ( order by shift_id) shift_times
from cus_section
group by section_id,section_name,shift_id
select section_id,section_name,
sum (work_time) section_times,
sum ( sum (work_time)) over ( order by section_id rows between unbounded preceding and unbounded following) sum_shift_times
from cus_section
group by section_id,section_name,shift_id
select section_id,section_name,
sum (work_time) section_times,
sum ( sum (work_time)) over ( order by section_id rows between 1 preceding and unbounded following) sum_shift_times
from cus_section
group by section_id,section_name,shift_id
select section_id,section_name,
sum (work_time) section_times,
sum ( sum (work_time)) over ( order by section_id rows between unbounded preceding and current row) sum_shift_times,
avg ( sum (work_time)) over ( order by section_id rows between unbounded preceding and current row) avg_shift_times
from cus_section
group by section_id,section_name,shift_id
select trunc(update_date) day ,
sum (work_time) section_times,
avg ( sum (work_time)) over ( order by trunc(update_date) range between interval ' 2 ' day preceding
and interval ' 2 ' day following) five_shift_times
from cus_section
group by update_date
select section_id,section_name,shift_id,
sum (work_time) section_times,
sum ( sum (work_time)) over (partition by shift_id) shift_times ,
round (ratio_to_report( sum (work_time)) over (partition by shift_id), 2 ) shift_present
from cus_section
group by section_id,section_name,shift_id
select * from sys_bom
where bom_id = 1000000135 ;
select * from sys_bom
where item_part_id = 1000000135
select distinct level ,bom_id,item_part_id from sys_bom
start with bom_id = 1000000135 connect by prior bom_id = item_part_id order by bom_id;
select distinct level ,bom_id,item_part_id from sys_bom
start with bom_id = 1000000135 connect by bom_id = prior item_part_id order by level
select count ( distinct level ) from sys_bom
start with bom_id = 1000000135 connect by bom_id = prior item_part_id
select level , count ( level ) from sys_bom
start with bom_id = 1000000135 connect by bom_id = prior item_part_id
group by level
select level ,bom_id,item_part_id from sys_bom where level = 2
start with bom_id = 1000000135 connect by bom_id = prior item_part_id
select level ,bom_id,item_part_id from sys_bom
start with bom_id = 1000000135 connect by bom_id = prior item_part_id