update /*+bypass_ujvc */  

 (

select a.mrt a_mrt,b.mrt b_mrt

from table a , table b

where a.dt in ('20111011','20111012','20111013','20111014','20111017')

and b.dt = '20110923'

and a.cd = b.cd

AND b.KNCD NOT IN ('30','40')

AND a.KNCD NOT IN ('30','40')

)

set a_mrt = b_mrt

;

key는 dt,cd 이나 key 끼리 조인이 되지 않으면 /*bypass_ujvc */ 힌트로 해결 


출처 : http://oracleebs.co.kr/?p=25
 

크리에이티브 커먼즈 라이선스
Creative Commons License
#/sbin/sh

sqlscript=`sqlplus -S ugens/ugens << end
set pagesize 0 feedback off ver off heading off echo off
CREATE TABLE test512(
test1 VARCHAR2(20),
test2 VARCHAR2(5),
test3 VARCHAR2(6)
);

INSERT INTO test512 VALUES('TEST','1','2');

COMMIT;

exit`
echo "result " $sqlscript

#end
크리에이티브 커먼즈 라이선스
Creative Commons License
set define off
혹은  
set scan off

크리에이티브 커먼즈 라이선스
Creative Commons License
select 
week('20091009',5) - 
week(DATE_SUB('20091009',INTERVAL DAYOFMONTH('20091009')-1 DAY),5) + 1
from dual;
크리에이티브 커먼즈 라이선스
Creative Commons License

WITH test AS

(

SELECT '1' grp , '1' seq , '20070111' dt , 500 amt FROM dual

UNION ALL SELECT '1' , '2' , '20070128' , 1000 FROM dual

UNION ALL SELECT '1' , '3' , '20070215' , 800 FROM dual

UNION ALL SELECT '1' , '4' , '20070222' , 300 FROM dual

UNION ALL SELECT '1' , '5' , '20070301' , 400 FROM dual

UNION ALL SELECT '1' , '6' , '20070305' , 600 FROM dual

UNION ALL SELECT '1' , '7' , '20070310' , 700 FROM dual

UNION ALL SELECT '1' , '8' , '20070319' , 900 FROM dual

UNION ALL SELECT '1' , '9' , '20070401' , 900 FROM dual

UNION ALL SELECT '1' , '10' , '20070505' , 1000 FROM dual

)

SELECT grp

   ,seq

   ,dt

   ,amt

   ,grp2 소속

   ,Sum(Decode(rn,1,dt)) over(PARTITION BY grp2) 소속일

from

(SELECT grp

   ,seq

   ,dt

   ,amt

   ,grp2

   ,Row_Number() over(PARTITION BY grp2 ORDER BY dt) rn

FROM

(SELECT grp

   ,seq

   ,dt

   ,amt

   ,Ceil(Decode(To_Date(dt) - To_Date('20070111'),0,1,To_Date(dt) - To_Date('20070111'))/29) grp2

FROM test)

)

결과

1 1 20070111 500 1 20070111

1 2 20070128 1000 1 20070111

1 3 20070215 800 2 20070215

1 4 20070222 300 2 20070215

1 5 20070301 400 2 20070215

1 6 20070305 600 2 20070215

1 7 20070310 700 2 20070215

1 8 20070319 900 3 20070319

1 9 20070401 900 3 20070319

1 10 20070505 1000 4 20070505

크리에이티브 커먼즈 라이선스
Creative Commons License