Версия БД: Oracle 12C
Ниже приведены мои данные.
PROCESS_INSTANCE, ACCRUAL_YEAR, ACCR_PERIOD, ACCRUAL_YEAR1, ACCR_PERIOD1, PROJECT_ID, EMPLID, PERIOD_END_D_ моя таблица * REPORT_UE1005 *
Я хочу обновить значение столбца REGULAR_HOURS, CTS_ACC_OT_HRS как STANDARD_HOURS в той же таблице.
Всякий раз, когда у сотрудника есть более одной строки для комбинации полей Key (исключая ключ PROJECT_ID), я хочу обновить REGULAR_HOURS, CTS_ACC_OT_HRS в первой строке с использованием ранга (process_instance, ACCRUAL_YEAR, ACCR_PERIOD, ACCRUAL_YEAR1, ACCR_PERIOD1, EMPLID, PERIOD_END_DT, REPORT_DUE_DATE).
PROCESS_INSTANCE ACCRUAL_YEAR ACCR_PERIOD ACCRUAL_YEAR1 ACCR_PERIOD1 PROJECT_ID EMPLID PERIOD_END_DT REPORT_DUE_DATE STANDARD_HOURS REGULAR_HOURS OVERTIME_HOURS CTS_ACC_OT_HRS
22196108 2019 8 2019 5 1000237975 787792 03-MAY-19 01-MAY-19 9 0 0 0
22196108 2019 8 2019 5 1000251958 787792 03-MAY-19 01-MAY-19 9 0 0 0
22196108 2019 8 2019 5 1000251958 787792 03-MAY-19 02-MAY-19 9 0 0 0
22196108 2019 8 2019 5 1000251958 787792 03-MAY-19 03-MAY-19 9 0 0 0
22196108 2019 8 2019 5 1000251958 787792 10-MAY-19 06-MAY-19 9 0 0 0
22196108 2019 8 2019 5 1000251958 787792 10-MAY-19 07-MAY-19 9 0 0 0
22196108 2019 8 2019 5 1000251958 787792 10-MAY-19 08-MAY-19 9 0 0 0
22196108 2019 8 2019 5 1000251958 787792 10-MAY-19 09-MAY-19 9 0 0 0
22196108 2019 8 2019 5 1000251958 787792 10-MAY-19 10-MAY-19 9 0 0 0
1011 * 1011: в подчиненных сотрудниках
1011 * требуется 1010две строки для REPORT_DUE_DATE 01-MAY-19.
Поэтому я хочу обновить REGULAR_HOURS и CTS_ACC_OT_HRS как STANDARD_HOURS для одной строки для даты выполнения отчета 01-MAY-19.
Примечание: необходимоизмените STANDARD_HOURS на 0 для дополнительных строк.
PROCESS_INSTANCE ACCRUAL_YEAR ACCR_PERIOD ACCRUAL_YEAR1 ACCR_PERIOD1 PROJECT_ID EMPLID PERIOD_END_DT REPORT_DUE_DATE STANDARD_HOURS REGULAR_HOURS OVERTIME_HOURS CTS_ACC_OT_HRS
22196108 2019 8 2019 5 1000237975 787792 03-MAY-19 01-MAY-19 9 9 0 9
22196108 2019 8 2019 5 1000251958 787792 03-MAY-19 01-MAY-19 0 0 0 0
22196108 2019 8 2019 5 1000251958 787792 03-MAY-19 02-MAY-19 9 9 0 9
22196108 2019 8 2019 5 1000251958 787792 03-MAY-19 03-MAY-19 9 9 0 9
22196108 2019 8 2019 5 1000251958 787792 10-MAY-19 06-MAY-19 9 9 0 9
22196108 2019 8 2019 5 1000251958 787792 10-MAY-19 07-MAY-19 9 9 0 9
22196108 2019 8 2019 5 1000251958 787792 10-MAY-19 08-MAY-19 9 9 0 9
22196108 2019 8 2019 5 1000251958 787792 10-MAY-19 09-MAY-19 9 9 0 9
22196108 2019 8 2019 5 1000251958 787792 10-MAY-19 10-MAY-19 9 9 0 9
CREATE TABLE PS_CT_IQN_ACC_STG (PROCESS_INSTANCE DECIMAL(10) NOT NULL,
ACCRUAL_YEAR SMALLINT NOT NULL,
ACCR_PERIOD SMALLINT NOT NULL,
ACCRUAL_YEAR1 SMALLINT NOT NULL,
ACCR_PERIOD1 SMALLINT NOT NULL,
CTS_ACCRUAL_TYPE VARCHAR2(3) NULL,
CTS_BLNK_TS_FLAG VARCHAR2(1) NULL,
PROJECT_ID VARCHAR2(15) NOT NULL,
ALLOCATION_PERCENT DECIMAL(13, 10) NULL,
PROJ_ACTIVITY_ID VARCHAR2(15) NULL,
EMPLID VARCHAR2(11) NOT NULL,
HIRE_DT DATE,
ACTION_DT DATE,
ACTION VARCHAR2(3) NULL,
CTS_WO_ID VARCHAR2(15) NULL,
CTS_WO_END_DATE DATE,
CTS_WO_REG_RATE DECIMAL(15, 2) NULL,
CTS_WO_OT_RATE DECIMAL(15, 2) NULL,
CTS_WO_CURRENCY VARCHAR2(3) NULL,
STANDARD_RATE DECIMAL(15, 2) NULL,
CURRENCY_CD VARCHAR2(3) NULL,
VENDOR_ID VARCHAR2(10) NULL,
CTS_OT_BASIS VARCHAR2(10) NULL,
COUNTRY VARCHAR2(3) NULL,
LOCATION VARCHAR2(10) NULL,
HOLIDAY_SCHEDULE VARCHAR2(6) NULL,
BUSINESS_UNIT VARCHAR2(5) NULL,
PERIOD_END_DT DATE,
REPORT_DUE_DATE DATE,
CTS_WORKDAY VARCHAR2(3) NULL,
TIME_QUANTITY DECIMAL(14, 2) NULL,
STANDARD_HOURS DECIMAL(14, 2) NULL,
REGULAR_HOURS DECIMAL(15, 3) NULL,
OVERTIME_HOURS DECIMAL(14, 2) NULL,
TIME_SHEET_STATUS VARCHAR2(3) NULL,
POLICY_ID VARCHAR2(50) NULL,
CTS_ACC_REG_HRS DECIMAL(5, 2) NULL,
CTS_ACC_OT_HRS DECIMAL(5, 2) NULL,
CTS_ACCR_BASE_AMT DECIMAL(15, 2) NULL,
CTS_ACCR_OT_AMT DECIMAL(15, 2) NULL,
CTS_ACCR_AMT_TOTAL DECIMAL(15, 2) NULL);
CREATE UNIQUE iNDEX PS_CT_IQN_ACC_STG ON PS_CT_IQN_ACC_STG
(PROCESS_INSTANCE,
ACCRUAL_YEAR,
ACCR_PERIOD,
ACCRUAL_YEAR1,
ACCR_PERIOD1,
PROJECT_ID,
EMPLID,
PERIOD_END_DT,
REPORT_DUE_DATE);
Вставьте сценарии:
Insert into PS_CT_IQN_ACC_STG (PROCESS_INSTANCE,ACCRUAL_YEAR,ACCR_PERIOD,ACCRUAL_YEAR1,ACCR_PERIOD1,CTS_ACCRUAL_TYPE,CTS_BLNK_TS_FLAG,PROJECT_ID,ALLOCATION_PERCENT,PROJ_ACTIVITY_ID,EMPLID,HIRE_DT,ACTION_DT,ACTION,CTS_WO_ID,CTS_WO_END_DATE,CTS_WO_REG_RATE,CTS_WO_OT_RATE,CTS_WO_CURRENCY,STANDARD_RATE,CURRENCY_CD,VENDOR_ID,CTS_OT_BASIS,COUNTRY,LOCATION,HOLIDAY_SCHEDULE,BUSINESS_UNIT,PERIOD_END_DT,REPORT_DUE_DATE,CTS_WORKDAY,TIME_QUANTITY,STANDARD_HOURS,REGULAR_HOURS,OVERTIME_HOURS,TIME_SHEET_STATUS,POLICY_ID,CTS_ACC_REG_HRS,CTS_ACC_OT_HRS,CTS_ACCR_BASE_AMT,CTS_ACCR_OT_AMT,CTS_ACCR_AMT_TOTAL) values (22196108,2019,8,2019,5,'H','Y','1000237975',0,'TBD','787792',to_date('29-APR-2019','DD-MON-YYYY'),to_date('07-MAY-2019','DD-MON-YYYY'),'XFR','12697051',to_date('28-OCT-2019','DD-MON-YYYY'),110,110,' ',65,'USD','0000010018','Weekly','USA','USGADUUA01','HUSA','US410',to_date('03-MAY-2019','DD-MON-YYYY'),to_date('01-MAY-2019','DD-MON-YYYY'),'Y',0,9,0,0,' ','Project',0,0,0,0,0);
Insert into PS_CT_IQN_ACC_STG (PROCESS_INSTANCE,ACCRUAL_YEAR,ACCR_PERIOD,ACCRUAL_YEAR1,ACCR_PERIOD1,CTS_ACCRUAL_TYPE,CTS_BLNK_TS_FLAG,PROJECT_ID,ALLOCATION_PERCENT,PROJ_ACTIVITY_ID,EMPLID,HIRE_DT,ACTION_DT,ACTION,CTS_WO_ID,CTS_WO_END_DATE,CTS_WO_REG_RATE,CTS_WO_OT_RATE,CTS_WO_CURRENCY,STANDARD_RATE,CURRENCY_CD,VENDOR_ID,CTS_OT_BASIS,COUNTRY,LOCATION,HOLIDAY_SCHEDULE,BUSINESS_UNIT,PERIOD_END_DT,REPORT_DUE_DATE,CTS_WORKDAY,TIME_QUANTITY,STANDARD_HOURS,REGULAR_HOURS,OVERTIME_HOURS,TIME_SHEET_STATUS,POLICY_ID,CTS_ACC_REG_HRS,CTS_ACC_OT_HRS,CTS_ACCR_BASE_AMT,CTS_ACCR_OT_AMT,CTS_ACCR_AMT_TOTAL) values (22196108,2019,8,2019,5,'H','Y','1000251958',0,'TBD','787792',to_date('29-APR-2019','DD-MON-YYYY'),to_date('07-MAY-2019','DD-MON-YYYY'),'XFR','12697051',to_date('28-OCT-2019','DD-MON-YYYY'),110,110,' ',65,'USD','0000010018','Weekly','USA','USGADUUA01','HUSA','US410',to_date('03-MAY-2019','DD-MON-YYYY'),to_date('01-MAY-2019','DD-MON-YYYY'),'Y',0,9,0,0,' ','Project',0,0,0,0,0);
Insert into PS_CT_IQN_ACC_STG (PROCESS_INSTANCE,ACCRUAL_YEAR,ACCR_PERIOD,ACCRUAL_YEAR1,ACCR_PERIOD1,CTS_ACCRUAL_TYPE,CTS_BLNK_TS_FLAG,PROJECT_ID,ALLOCATION_PERCENT,PROJ_ACTIVITY_ID,EMPLID,HIRE_DT,ACTION_DT,ACTION,CTS_WO_ID,CTS_WO_END_DATE,CTS_WO_REG_RATE,CTS_WO_OT_RATE,CTS_WO_CURRENCY,STANDARD_RATE,CURRENCY_CD,VENDOR_ID,CTS_OT_BASIS,COUNTRY,LOCATION,HOLIDAY_SCHEDULE,BUSINESS_UNIT,PERIOD_END_DT,REPORT_DUE_DATE,CTS_WORKDAY,TIME_QUANTITY,STANDARD_HOURS,REGULAR_HOURS,OVERTIME_HOURS,TIME_SHEET_STATUS,POLICY_ID,CTS_ACC_REG_HRS,CTS_ACC_OT_HRS,CTS_ACCR_BASE_AMT,CTS_ACCR_OT_AMT,CTS_ACCR_AMT_TOTAL) values (22196108,2019,8,2019,5,'H','Y','1000251958',0,'TBD','787792',to_date('29-APR-2019','DD-MON-YYYY'),to_date('07-MAY-2019','DD-MON-YYYY'),'XFR','12697051',to_date('28-OCT-2019','DD-MON-YYYY'),110,110,' ',65,'USD','0000010018','Weekly','USA','USGADUUA01','HUSA','US410',to_date('03-MAY-2019','DD-MON-YYYY'),to_date('02-MAY-2019','DD-MON-YYYY'),'Y',0,9,0,0,' ','Project',0,0,0,0,0);
Insert into PS_CT_IQN_ACC_STG (PROCESS_INSTANCE,ACCRUAL_YEAR,ACCR_PERIOD,ACCRUAL_YEAR1,ACCR_PERIOD1,CTS_ACCRUAL_TYPE,CTS_BLNK_TS_FLAG,PROJECT_ID,ALLOCATION_PERCENT,PROJ_ACTIVITY_ID,EMPLID,HIRE_DT,ACTION_DT,ACTION,CTS_WO_ID,CTS_WO_END_DATE,CTS_WO_REG_RATE,CTS_WO_OT_RATE,CTS_WO_CURRENCY,STANDARD_RATE,CURRENCY_CD,VENDOR_ID,CTS_OT_BASIS,COUNTRY,LOCATION,HOLIDAY_SCHEDULE,BUSINESS_UNIT,PERIOD_END_DT,REPORT_DUE_DATE,CTS_WORKDAY,TIME_QUANTITY,STANDARD_HOURS,REGULAR_HOURS,OVERTIME_HOURS,TIME_SHEET_STATUS,POLICY_ID,CTS_ACC_REG_HRS,CTS_ACC_OT_HRS,CTS_ACCR_BASE_AMT,CTS_ACCR_OT_AMT,CTS_ACCR_AMT_TOTAL) values (22196108,2019,8,2019,5,'H','Y','1000251958',0,'TBD','787792',to_date('29-APR-2019','DD-MON-YYYY'),to_date('07-MAY-2019','DD-MON-YYYY'),'XFR','12697051',to_date('28-OCT-2019','DD-MON-YYYY'),110,110,' ',65,'USD','0000010018','Weekly','USA','USGADUUA01','HUSA','US410',to_date('03-MAY-2019','DD-MON-YYYY'),to_date('03-MAY-2019','DD-MON-YYYY'),'Y',0,9,0,0,' ','Project',0,0,0,0,0);
Insert into PS_CT_IQN_ACC_STG (PROCESS_INSTANCE,ACCRUAL_YEAR,ACCR_PERIOD,ACCRUAL_YEAR1,ACCR_PERIOD1,CTS_ACCRUAL_TYPE,CTS_BLNK_TS_FLAG,PROJECT_ID,ALLOCATION_PERCENT,PROJ_ACTIVITY_ID,EMPLID,HIRE_DT,ACTION_DT,ACTION,CTS_WO_ID,CTS_WO_END_DATE,CTS_WO_REG_RATE,CTS_WO_OT_RATE,CTS_WO_CURRENCY,STANDARD_RATE,CURRENCY_CD,VENDOR_ID,CTS_OT_BASIS,COUNTRY,LOCATION,HOLIDAY_SCHEDULE,BUSINESS_UNIT,PERIOD_END_DT,REPORT_DUE_DATE,CTS_WORKDAY,TIME_QUANTITY,STANDARD_HOURS,REGULAR_HOURS,OVERTIME_HOURS,TIME_SHEET_STATUS,POLICY_ID,CTS_ACC_REG_HRS,CTS_ACC_OT_HRS,CTS_ACCR_BASE_AMT,CTS_ACCR_OT_AMT,CTS_ACCR_AMT_TOTAL) values (22196108,2019,8,2019,5,'H','Y','1000251958',0,'TBD','787792',to_date('29-APR-2019','DD-MON-YYYY'),to_date('07-MAY-2019','DD-MON-YYYY'),'XFR','12697051',to_date('28-OCT-2019','DD-MON-YYYY'),110,110,' ',65,'USD','0000010018','Weekly','USA','USGADUUA01','HUSA','US410',to_date('10-MAY-2019','DD-MON-YYYY'),to_date('06-MAY-2019','DD-MON-YYYY'),'Y',0,9,0,0,' ','Project',0,0,0,0,0);
Insert into PS_CT_IQN_ACC_STG (PROCESS_INSTANCE,ACCRUAL_YEAR,ACCR_PERIOD,ACCRUAL_YEAR1,ACCR_PERIOD1,CTS_ACCRUAL_TYPE,CTS_BLNK_TS_FLAG,PROJECT_ID,ALLOCATION_PERCENT,PROJ_ACTIVITY_ID,EMPLID,HIRE_DT,ACTION_DT,ACTION,CTS_WO_ID,CTS_WO_END_DATE,CTS_WO_REG_RATE,CTS_WO_OT_RATE,CTS_WO_CURRENCY,STANDARD_RATE,CURRENCY_CD,VENDOR_ID,CTS_OT_BASIS,COUNTRY,LOCATION,HOLIDAY_SCHEDULE,BUSINESS_UNIT,PERIOD_END_DT,REPORT_DUE_DATE,CTS_WORKDAY,TIME_QUANTITY,STANDARD_HOURS,REGULAR_HOURS,OVERTIME_HOURS,TIME_SHEET_STATUS,POLICY_ID,CTS_ACC_REG_HRS,CTS_ACC_OT_HRS,CTS_ACCR_BASE_AMT,CTS_ACCR_OT_AMT,CTS_ACCR_AMT_TOTAL) values (22196108,2019,8,2019,5,'H','Y','1000251958',0,'TBD','787792',to_date('29-APR-2019','DD-MON-YYYY'),to_date('07-MAY-2019','DD-MON-YYYY'),'XFR','12697051',to_date('28-OCT-2019','DD-MON-YYYY'),110,110,' ',65,'USD','0000010018','Weekly','USA','USGADUUA01','HUSA','US410',to_date('10-MAY-2019','DD-MON-YYYY'),to_date('07-MAY-2019','DD-MON-YYYY'),'Y',0,9,0,0,' ','Project',0,0,0,0,0);
Insert into PS_CT_IQN_ACC_STG (PROCESS_INSTANCE,ACCRUAL_YEAR,ACCR_PERIOD,ACCRUAL_YEAR1,ACCR_PERIOD1,CTS_ACCRUAL_TYPE,CTS_BLNK_TS_FLAG,PROJECT_ID,ALLOCATION_PERCENT,PROJ_ACTIVITY_ID,EMPLID,HIRE_DT,ACTION_DT,ACTION,CTS_WO_ID,CTS_WO_END_DATE,CTS_WO_REG_RATE,CTS_WO_OT_RATE,CTS_WO_CURRENCY,STANDARD_RATE,CURRENCY_CD,VENDOR_ID,CTS_OT_BASIS,COUNTRY,LOCATION,HOLIDAY_SCHEDULE,BUSINESS_UNIT,PERIOD_END_DT,REPORT_DUE_DATE,CTS_WORKDAY,TIME_QUANTITY,STANDARD_HOURS,REGULAR_HOURS,OVERTIME_HOURS,TIME_SHEET_STATUS,POLICY_ID,CTS_ACC_REG_HRS,CTS_ACC_OT_HRS,CTS_ACCR_BASE_AMT,CTS_ACCR_OT_AMT,CTS_ACCR_AMT_TOTAL) values (22196108,2019,8,2019,5,'H','Y','1000251958',0,'TBD','787792',to_date('29-APR-2019','DD-MON-YYYY'),to_date('07-MAY-2019','DD-MON-YYYY'),'XFR','12697051',to_date('28-OCT-2019','DD-MON-YYYY'),110,110,' ',65,'USD','0000010018','Weekly','USA','USGADUUA01','HUSA','US410',to_date('10-MAY-2019','DD-MON-YYYY'),to_date('08-MAY-2019','DD-MON-YYYY'),'Y',0,9,0,0,' ','Project',0,0,0,0,0);
Insert into PS_CT_IQN_ACC_STG (PROCESS_INSTANCE,ACCRUAL_YEAR,ACCR_PERIOD,ACCRUAL_YEAR1,ACCR_PERIOD1,CTS_ACCRUAL_TYPE,CTS_BLNK_TS_FLAG,PROJECT_ID,ALLOCATION_PERCENT,PROJ_ACTIVITY_ID,EMPLID,HIRE_DT,ACTION_DT,ACTION,CTS_WO_ID,CTS_WO_END_DATE,CTS_WO_REG_RATE,CTS_WO_OT_RATE,CTS_WO_CURRENCY,STANDARD_RATE,CURRENCY_CD,VENDOR_ID,CTS_OT_BASIS,COUNTRY,LOCATION,HOLIDAY_SCHEDULE,BUSINESS_UNIT,PERIOD_END_DT,REPORT_DUE_DATE,CTS_WORKDAY,TIME_QUANTITY,STANDARD_HOURS,REGULAR_HOURS,OVERTIME_HOURS,TIME_SHEET_STATUS,POLICY_ID,CTS_ACC_REG_HRS,CTS_ACC_OT_HRS,CTS_ACCR_BASE_AMT,CTS_ACCR_OT_AMT,CTS_ACCR_AMT_TOTAL) values (22196108,2019,8,2019,5,'H','Y','1000251958',0,'TBD','787792',to_date('29-APR-2019','DD-MON-YYYY'),to_date('07-MAY-2019','DD-MON-YYYY'),'XFR','12697051',to_date('28-OCT-2019','DD-MON-YYYY'),110,110,' ',65,'USD','0000010018','Weekly','USA','USGADUUA01','HUSA','US410',to_date('10-MAY-2019','DD-MON-YYYY'),to_date('09-MAY-2019','DD-MON-YYYY'),'Y',0,9,0,0,' ','Project',0,0,0,0,0);
Insert into PS_CT_IQN_ACC_STG (PROCESS_INSTANCE,ACCRUAL_YEAR,ACCR_PERIOD,ACCRUAL_YEAR1,ACCR_PERIOD1,CTS_ACCRUAL_TYPE,CTS_BLNK_TS_FLAG,PROJECT_ID,ALLOCATION_PERCENT,PROJ_ACTIVITY_ID,EMPLID,HIRE_DT,ACTION_DT,ACTION,CTS_WO_ID,CTS_WO_END_DATE,CTS_WO_REG_RATE,CTS_WO_OT_RATE,CTS_WO_CURRENCY,STANDARD_RATE,CURRENCY_CD,VENDOR_ID,CTS_OT_BASIS,COUNTRY,LOCATION,HOLIDAY_SCHEDULE,BUSINESS_UNIT,PERIOD_END_DT,REPORT_DUE_DATE,CTS_WORKDAY,TIME_QUANTITY,STANDARD_HOURS,REGULAR_HOURS,OVERTIME_HOURS,TIME_SHEET_STATUS,POLICY_ID,CTS_ACC_REG_HRS,CTS_ACC_OT_HRS,CTS_ACCR_BASE_AMT,CTS_ACCR_OT_AMT,CTS_ACCR_AMT_TOTAL) values (22196108,2019,8,2019,5,'H','Y','1000251958',0,'TBD','787792',to_date('29-APR-2019','DD-MON-YYYY'),to_date('07-MAY-2019','DD-MON-YYYY'),'XFR','12697051',to_date('28-OCT-2019','DD-MON-YYYY'),110,110,' ',65,'USD','0000010018','Weekly','USA','USGADUUA01','HUSA','US410',to_date('10-MAY-`2019','DD-MON-YYYY'),to_date('10-MAY-2019','DD-MON-YYYY'),'Y',0,9,0,0,' ','Project',0,0,0,0,0);`