Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> Can this be done?

Can this be done?

From: Burton, Laura <BurtonL_at_frmaint.com>
Date: Mon, 22 Aug 2005 07:03:16 -0500
Message-ID: <B5E0B4818A669C49A9C22199D9C389F803918B82@MAIL.frmaint.com>


I have three fields that I need to use to update 1 field. Can this be done in an insert/select statement?  

Pers_act_rsn_cd

Pers_act_rsn_cd2

Pers_act_rsn_cd3  

If any of the three contain 'TERM' in the first 4 positions then the code from position 7 is to be moved to term_cd.  

Here is my statement so far...  

insert into cpuser.cp_person_masters

  (EMPL_ID, LAST_NAME, FIRST_NAME,    MID_NAME, BIRTH_DT, HIRE_DT,    GENDER, MARITAL_CD, SUPV_BADGE,    ETHNIC_CD, VET_STATUS_S, VET_STATUS_V,    VET_STATUS_O, VET_STATUS_R, VET_RELEASE_DT,    CLASS_DESC, SKILL_CD, ORG_ID,

   LOC_DESC,          LOC_CD,                 OSUSER,                 

   START_TIME,        CREW_LEADER,            SHIFT,                  

   TYPING_SCORE,      ODD_WORK_WEEK,          RESTRICTED_DUTY,        

   INACTIVE_DPT,      OVERTIME_PROJ,          TERM_DT,                

   YTD_OVERTIME_HRS,  SENIORITY_NUM,                       

   HOME_ADDR1,        HOME_ADDR2,             HOME_CITY,              

   HOME_STATE,        HOME_ZIP,               HOME_PHONE,

   TERM_CD   )

select emp.empl_id, max(emp.last_name), max(emp.first_name),

       max(emp.mid_name), max(emp.birth_dt), max(emp.ORIG_HIRE_DT),

       max(emp.sex_cd), max(emp.marital_cd), max(ELI.MGR_EMPL_ID),

       max(emp.s_race_cd), max(emp.VET_STATUS_S), max(emp.VET_STATUS_V),

       max(emp.VET_STATUS_O), max(emp.VET_STATUS_R), max(emp.VET_RELEASE_DT),

       max(ELI.TITLE_DESC), max(ELI.DETL_JOB_CD), max(ELI.ORG_ID),

       max(LL.LAB_LOC_DESC), max(ELI.LAB_LOC_CD), max(UI.USER_ID),

       MAX(DECODE(UPPER(GU.UDEF_LBL_KEY),31, substr(GU.udef_txt,1,4))) START_TIME,        MAX(DECODE(UPPER(GU.UDEF_LBL_KEY),28, substr(GU.udef_txt,1,6))) CREW_LEADER,        MAX(DECODE(UPPER(GU.UDEF_LBL_KEY),19, substr(GU.udef_id,1,3))) SHIFT,        MAX(DECODE(UPPER(GU.UDEF_LBL_KEY),24, to_char(GU.udef_amt,'999'))) TYPING_SCORE,

       MAX(DECODE(UPPER(GU.UDEF_LBL_KEY),25, substr(GU.udef_id,1,6))) ODD_WORK_WEEK,        MAX(DECODE(UPPER(GU.UDEF_LBL_KEY),29, substr(GU.udef_id,1,1))) RESTRICTED_DUTY,        MAX(DECODE(UPPER(GU.UDEF_LBL_KEY),30, substr(GU.udef_id,1,2))) INACTIVE_DPT,        MAX(DECODE(UPPER(GU.UDEF_LBL_KEY),32, substr(GU.udef_txt,1,2))) OVERTIME_PROJ,        max(EMP.TERM_DT),

       MAX(DECODE(UPPER(GU.UDEF_LBL_KEY),50, GU.udef_AMT)) YTD_Overtime_HRS,

       MAX(DECODE(UPPER(GU.UDEF_LBL_KEY),51, substr(GU.udef_txt,1,5))) SENIORITY_NUM,        max(EMP.LN_1_ADR), max(EMP.LN_2_ADR), max(EMP.CITY_NAME),

       max(EMP.MAIL_STATE_DC), max(EMP.POSTAL_CD), max(EP.PHONE_ID),

       MAX(DECODE(UPPER(SUBSTR(ELI.PERS_ACT_RSN_CD,1,4)),'TERM', substr(ELI.PERS_ACT_RSN_CD,7,1))) TERM_CD,

  FROM DELTEK.EMPL EMP,        DELTEK.LAB_LOCATION LL,        DELTEK.GENL_UDEF GU,        DELTEK.EMPL_LAB_INFO ELI,        DELTEK.USER_ID UI,        DELTEK.EMPL_PHONE EP  WHERE EMP.EMPL_ID = ELI.EMPL_ID    AND ELI.EFFECT_DT = (SELECT MAX(EFFECT_DT)

                              FROM DELTEK.EMPL_LAB_INFO ELI2

                             WHERE ELI2.EMPL_ID = ELI.EMPL_ID)

   AND EMP.EMPL_ID       = UI.EMPL_ID(+)

   AND ELI.LAB_LOC_CD = LL.LAB_LOC_CD    AND EMP.EMPL_ID = GU.GENL_ID(+)    AND EMP.EMPL_ID = EP.EMPL_ID(+)    AND EP.PHONE_TYPE_DC = 'HOME'  GROUP BY EMP.EMPL_ID, genl_id

/

--
http://www.freelists.org/webpage/oracle-l
Received on Mon Aug 22 2005 - 07:06:41 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US