Changes to schema and code to place 'id' as PK field in quote_events and enquiry_events as part of ticket #78.

Changed BULK_LOAD.xls to have two tabs to represent costs. Also includes QMAX against module - none of these changes are represented in the current code.

git-svn-id: http://locode01.ad.dom/svn/WEBMIP/trunk@3480 248e525c-4dfb-0310-94bc-949c084e9493
This commit is contained in:
hardya
2008-02-06 17:28:44 +00:00
parent bba0394796
commit 12f2693a5c
13 changed files with 153 additions and 147 deletions

Binary file not shown.

View File

@@ -0,0 +1,26 @@
DECLARE
l_test_load BOOLEAN := upper('&&1') = 'TEST';
l_fat_load BOOLEAN := upper('&&1') = 'FAT';
l_dev_load BOOLEAN := upper(nvl('&&1','DEV')) = 'DEV';
BEGIN
IF l_test_load THEN
mip_bulk_load.g_flow_id := 102;
ELSIF l_fat_load THEN
mip_bulk_load.g_flow_id := 200;
ELSIF l_dev_load THEN
mip_bulk_load.g_flow_id := 200;
END IF;
IF mip_bulk_load.g_flow_id IS NOT NULL THEN
mip_bulk_load.load_all;
mip_bulk_load.report_err;
ELSE
dbms_output.put_line('Run bulk_load: Unexpected parameter value of &&1 received');
END IF;
END;
/
exit
/

View File

@@ -23,11 +23,15 @@ sqlplus %3/%4@%5 @Modules\Modules.sql
sqlplus %3/%4@%5 @Data\Seed\create_passwords.sql
sqlplus %3/%4@%5 @Data\BulkLoad\bulk_load.sql "%6"
if "%6"=="" goto :done
if "%6"=="demo" goto :demo
if "%6"=="test" goto :test
if "%6"=="fat" goto :fat
:demo
@echo Demo
cd Data\Demo

View File

@@ -236,11 +236,13 @@ CREATE OR REPLACE PACKAGE BODY mip_enquiry IS
INSERT INTO enquiry_events
(enqu_id
,event_date
,enst_code)
,enst_code
,id)
VALUES
(p_enquiryid
,SYSDATE
,p_eventcode);
,p_eventcode
,enev_seq.nextval);
RETURN TRUE;
--

View File

@@ -1586,11 +1586,13 @@ CREATE OR REPLACE PACKAGE BODY mip_bulk_load IS
get_globals;
pl('Application id:' || g_flow_id);
SELECT wwv_flow.get_current_flow_sgid(g_flow_id)
INTO l_sgid
FROM dual;
pl('Security group id ' || l_sgid);
pl('Security group id:' || l_sgid);
wwv_flow_api.set_security_group_id(l_sgid);
apex_application.g_flow_id := g_flow_id;

View File

@@ -178,14 +178,35 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS
(qute_id
,qust_code
,event_date
,description)
,description
,id)
VALUES
(p_qute_id
,p_qust_code
,p_event_date
,p_description);
,p_description
,quev_seq.NEXTVAL);
END add_quote_event;
PROCEDURE add_enquiry_event(p_enqu_id IN enquiries.id%TYPE
,p_enst_code enquiry_status_types.code%TYPE
,p_description enquiry_events.description%TYPE DEFAULT NULL
,p_event_date DATE DEFAULT SYSDATE) IS
BEGIN
INSERT INTO enquiry_events
(enqu_id
,enst_code
,event_date
,description
,id)
VALUES
(p_enqu_id
,p_enst_code
,p_event_date
,p_description
,enev_seq.NEXTVAL);
END add_enquiry_event;
PROCEDURE add_quote_role(p_qute_id IN quotes.id%TYPE
,p_prty_id IN parties.id%TYPE
,p_rt_code quote_roles.rt_code%TYPE
@@ -373,14 +394,9 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS
,USER)
RETURNING id INTO l_qute_id;
INSERT INTO quote_events
(event_date
,qust_code
,qute_id)
VALUES
(SYSDATE
,'INP' -- In Progress
,l_qute_id);
add_quote_event(p_qute_id => l_qute_id
,p_qust_code => 'INP'
,p_event_date => SYSDATE);
INSERT INTO quote_roles
(prty_id
@@ -413,14 +429,9 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS
BEGIN
pl('make_quote_available');
INSERT INTO quote_events
(event_date
,qust_code
,qute_id)
VALUES
(SYSDATE
,'AV' -- Available
,p_qute_id);
add_quote_event(p_qute_id => p_qute_id
,p_qust_code => 'AV'
,p_event_date => SYSDATE);
END make_quote_available;
@@ -428,28 +439,20 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS
BEGIN
pl('mark_enquiry_submitted');
INSERT INTO enquiry_events
(event_date
,enst_code
,enqu_id)
VALUES
(SYSDATE
,'SUBMITTED'
,p_enqu_id);
add_enquiry_event(p_enqu_id => p_enqu_id
,p_enst_code => 'SUBMITTED'
,p_event_date => SYSDATE);
email_rfq_submitted(p_enqu_id);
END mark_enquiry_submitted;
PROCEDURE mark_enquiry_quoted(p_enqu_id IN enquiries.id%TYPE) IS
BEGIN
INSERT INTO enquiry_events
(event_date
,enst_code
,enqu_id)
VALUES
(SYSDATE
,'QUOTED'
,p_enqu_id);
pl('mark_enquiry_quoted');
add_enquiry_event(p_enqu_id => p_enqu_id
,p_enst_code => 'QUOTED'
,p_event_date => SYSDATE);
email_quotes_available(p_enqu_id);
@@ -457,14 +460,11 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS
PROCEDURE mark_enquiry_invalid(p_enqu_id IN enquiries.id%TYPE) IS
BEGIN
INSERT INTO enquiry_events
(event_date
,enst_code
,enqu_id)
VALUES
(SYSDATE
,'INVALID'
,p_enqu_id);
pl('mark_enquiry_invalid');
add_enquiry_event(p_enqu_id => p_enqu_id
,p_enst_code => 'INVALID'
,p_event_date => SYSDATE);
END mark_enquiry_invalid;
FUNCTION get_system_configuration_value(p_parameter IN system_configuration.parameter%TYPE)
@@ -1236,26 +1236,26 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.');
END IF; -- RELOCATE
IF p_enqu.enty_code IN ('EXCHANGE', 'STD EXCHANGE') THEN
-- SELECT svcpt_code
-- INTO l_svcpt_code
-- FROM service_pressures
-- WHERE code = p_enqu.required_svcp_code;
-- IF l_svcpt_code = 'LP' THEN
l_existing_meter_size_code := p_enqu.existing_mesc_code;
l_required_meter_size_code := p_enqu.required_mesc_code;
IF l_required_meter_size_code IS NULL THEN
l_required_meter_size_code := get_u_meter_size(p_enqu.qmax);
END IF;
IF NOT
valid_meter_size_upgrade(p_existing_meter_size_code => l_existing_meter_size_code
,p_required_meter_size_code => l_required_meter_size_code) THEN
p_manual_or_automatic_quote := gc_manual_quote;
add_quote_reason(p_enqu.id
,'Site Survey is required for exchange of meter from size ' ||
l_existing_meter_size_code || ' to ' ||
l_required_meter_size_code || '.');
END IF;
-- END IF; -- svcpt_code = 'LP'
-- SELECT svcpt_code
-- INTO l_svcpt_code
-- FROM service_pressures
-- WHERE code = p_enqu.required_svcp_code;
-- IF l_svcpt_code = 'LP' THEN
l_existing_meter_size_code := p_enqu.existing_mesc_code;
l_required_meter_size_code := p_enqu.required_mesc_code;
IF l_required_meter_size_code IS NULL THEN
l_required_meter_size_code := get_u_meter_size(p_enqu.qmax);
END IF;
IF NOT
valid_meter_size_upgrade(p_existing_meter_size_code => l_existing_meter_size_code
,p_required_meter_size_code => l_required_meter_size_code) THEN
p_manual_or_automatic_quote := gc_manual_quote;
add_quote_reason(p_enqu.id
,'Site Survey is required for exchange of meter from size ' ||
l_existing_meter_size_code || ' to ' ||
l_required_meter_size_code || '.');
END IF;
-- END IF; -- svcpt_code = 'LP'
END IF; -- EXCHANGE
END survey_required;

View File

@@ -1,6 +1,6 @@
-- C:\Andy\svn\WEBMIP\Schema\mip.con
--
-- Generated for Oracle 10g on Tue Jan 29 11:31:54 2008 by Server Generator 10.1.2.6.18
-- Generated for Oracle 10g on Tue Feb 05 12:03:58 2008 by Server Generator 10.1.2.6.18
PROMPT Creating Primary Key on 'SYSTEM_CONFIGURATION'
ALTER TABLE SYSTEM_CONFIGURATION
@@ -175,8 +175,7 @@ ALTER TABLE PARTY_RELATIONSHIPS
PROMPT Creating Primary Key on 'QUOTE_EVENTS'
ALTER TABLE QUOTE_EVENTS
ADD (CONSTRAINT QUEV_PK PRIMARY KEY
(QUTE_ID
,QUST_CODE))
(ID))
/
PROMPT Creating Primary Key on 'PARTY_ADDRESSES'
@@ -196,9 +195,7 @@ ALTER TABLE SERVICE_PRESSURES
PROMPT Creating Primary Key on 'ENQUIRY_EVENTS'
ALTER TABLE ENQUIRY_EVENTS
ADD (CONSTRAINT ENEV_PK PRIMARY KEY
(EVENT_DATE
,ENST_CODE
,ENQU_ID))
(ID))
/
PROMPT Creating Primary Key on 'PARTIES'
@@ -456,28 +453,28 @@ ALTER TABLE REGI_ENQU_EXCLUSIONS
PROMPT Creating Check Constraint on 'METER_SIZE_CODES'
ALTER TABLE METER_SIZE_CODES
ADD (CONSTRAINT AVCON_1201606313_VALID_000 CHECK (VALID_FOR_EXISTING_METER IN ('YES', 'NO')))
ADD (CONSTRAINT AVCON_1202213037_VALID_000 CHECK (VALID_FOR_EXISTING_METER IN ('YES', 'NO')))
/
PROMPT Creating Check Constraint on 'METER_SIZE_CODES'
ALTER TABLE METER_SIZE_CODES
ADD (CONSTRAINT AVCON_1201606313_VALID_001 CHECK (VALID_FOR_NEW_METER IN ('YES', 'NO')))
ADD (CONSTRAINT AVCON_1202213037_VALID_001 CHECK (VALID_FOR_NEW_METER IN ('YES', 'NO')))
/
PROMPT Creating Check Constraint on 'COSTS'
ALTER TABLE COSTS
ADD (CONSTRAINT AVCON_1201606313_COST__000 CHECK (COST_TYPE
ADD (CONSTRAINT AVCON_1202213037_COST__000 CHECK (COST_TYPE
IN ('LACO', 'BACO', 'MOCO', 'MECO', 'AICO', 'HOCO', 'COST')))
/
PROMPT Creating Check Constraint on 'DOCUMENTS'
ALTER TABLE DOCUMENTS
ADD (CONSTRAINT AVCON_1201606313_DOCU__000 CHECK (DOCU_TYPE IN ('DOCU', 'INDO', 'EXDO', 'FIDO')))
ADD (CONSTRAINT AVCON_1202213037_DOCU__000 CHECK (DOCU_TYPE IN ('DOCU', 'INDO', 'EXDO', 'FIDO')))
/
PROMPT Creating Check Constraint on 'QUOTES'
ALTER TABLE QUOTES
ADD (CONSTRAINT AVCON_1201606313_QUTE__000 CHECK (QUTE_TYPE IN ('AQ', 'MQ', 'QUTE')))
ADD (CONSTRAINT AVCON_1202213037_QUTE__000 CHECK (QUTE_TYPE IN ('AQ', 'MQ', 'QUTE')))
/
PROMPT Creating Check Constraint on 'PARTY_RELATIONSHIPS'
@@ -489,17 +486,17 @@ to_parl_rt_code = to_prtp_rt_code))
PROMPT Creating Check Constraint on 'PARTIES'
ALTER TABLE PARTIES
ADD (CONSTRAINT AVCON_1201606313_TRIPA_000 CHECK (TRIPARTITE_MEMBER IN ('YES', 'NO')))
ADD (CONSTRAINT AVCON_1202213037_TRIPA_000 CHECK (TRIPARTITE_MEMBER IN ('YES', 'NO')))
/
PROMPT Creating Check Constraint on 'PARTIES'
ALTER TABLE PARTIES
ADD (CONSTRAINT AVCON_1201606313_STATU_000 CHECK (STATUS IN ('OPEN', 'EXPIRED', 'LOCKED')))
ADD (CONSTRAINT AVCON_1202213037_STATU_000 CHECK (STATUS IN ('OPEN', 'EXPIRED', 'LOCKED')))
/
PROMPT Creating Check Constraint on 'PARTIES'
ALTER TABLE PARTIES
ADD (CONSTRAINT AVCON_1201606313_PRTY__000 CHECK (PRTY_TYPE
ADD (CONSTRAINT AVCON_1202213037_PRTY__000 CHECK (PRTY_TYPE
IN ('PRTY', 'IO', 'EO', 'MKTP', 'PERS', 'MANU', 'NEMP', 'EMP', 'ORG'
)))
/
@@ -517,82 +514,82 @@ OR
PROMPT Creating Check Constraint on 'DOCUMENT_ROLES'
ALTER TABLE DOCUMENT_ROLES
ADD (CONSTRAINT AVCON_1201606313_DORO__000 CHECK (DORO_TYPE IN ('DRRO', 'DORO', 'ENDO', 'QUDO')))
ADD (CONSTRAINT AVCON_1202213037_DORO__000 CHECK (DORO_TYPE IN ('DRRO', 'DORO', 'ENDO', 'QUDO')))
/
PROMPT Creating Check Constraint on 'QUOTE_ITEMS'
ALTER TABLE QUOTE_ITEMS
ADD (CONSTRAINT AVCON_1201606313_QUIT__000 CHECK (QUIT_TYPE IN ('LQI', 'AQI', 'BQI', 'MQI', 'QUIT', 'HQI')))
ADD (CONSTRAINT AVCON_1202213037_QUIT__000 CHECK (QUIT_TYPE IN ('LQI', 'AQI', 'BQI', 'MQI', 'QUIT', 'HQI')))
/
PROMPT Creating Check Constraint on 'ROLE_TYPES'
ALTER TABLE ROLE_TYPES
ADD (CONSTRAINT AVCON_1201606313_RT_TY_000 CHECK (RT_TYPE IN ('DORT', 'PART', 'RT', 'PCMRT', 'QURT', 'ENRT', 'PRT')))
ADD (CONSTRAINT AVCON_1202213037_RT_TY_000 CHECK (RT_TYPE IN ('DORT', 'PART', 'RT', 'PCMRT', 'QURT', 'ENRT', 'PRT')))
/
PROMPT Creating Check Constraint on 'ENQUIRIES'
ALTER TABLE ENQUIRIES
ADD (CONSTRAINT AVCON_1201606313_DOWNS_000 CHECK (DOWNSTREAM_BOOSTER_OR_COMPRESS IN ('YES', 'NO')))
ADD (CONSTRAINT AVCON_1202213037_DOWNS_000 CHECK (DOWNSTREAM_BOOSTER_OR_COMPRESS IN ('YES', 'NO')))
/
PROMPT Creating Check Constraint on 'ENQUIRIES'
ALTER TABLE ENQUIRIES
ADD (CONSTRAINT AVCON_1201606313_INDIC_000 CHECK (INDICATIVE_TIME IN ('DY', 'AM', 'PM')))
ADD (CONSTRAINT AVCON_1202213037_INDIC_000 CHECK (INDICATIVE_TIME IN ('DY', 'AM', 'PM')))
/
PROMPT Creating Check Constraint on 'ENQUIRIES'
ALTER TABLE ENQUIRIES
ADD (CONSTRAINT AVCON_1201606313_HOUSI_000 CHECK (HOUSING_REQUIRED IN ('YES', 'NO')))
ADD (CONSTRAINT AVCON_1202213037_HOUSI_000 CHECK (HOUSING_REQUIRED IN ('YES', 'NO')))
/
PROMPT Creating Check Constraint on 'ENQUIRIES'
ALTER TABLE ENQUIRIES
ADD (CONSTRAINT AVCON_1201606313_BASE__000 CHECK (BASE_REQUIRED IN ('YES', 'NO')))
ADD (CONSTRAINT AVCON_1202213037_BASE__000 CHECK (BASE_REQUIRED IN ('YES', 'NO')))
/
PROMPT Creating Check Constraint on 'ENQUIRIES'
ALTER TABLE ENQUIRIES
ADD (CONSTRAINT AVCON_1201606313_CONVE_000 CHECK (CONVERTOR_REQUIRED IN ('YES', 'NO')))
ADD (CONSTRAINT AVCON_1202213037_CONVE_000 CHECK (CONVERTOR_REQUIRED IN ('YES', 'NO')))
/
PROMPT Creating Check Constraint on 'ENQUIRIES'
ALTER TABLE ENQUIRIES
ADD (CONSTRAINT AVCON_1201606313_AMR_R_000 CHECK (AMR_REQUIRED IN ('YES', 'NO')))
ADD (CONSTRAINT AVCON_1202213037_AMR_R_000 CHECK (AMR_REQUIRED IN ('YES', 'NO')))
/
PROMPT Creating Check Constraint on 'ENQUIRIES'
ALTER TABLE ENQUIRIES
ADD (CONSTRAINT AVCON_1201606313_EMS_R_000 CHECK (EMS_REQUIRED IN ('YES', 'NO')))
ADD (CONSTRAINT AVCON_1202213037_EMS_R_000 CHECK (EMS_REQUIRED IN ('YES', 'NO')))
/
PROMPT Creating Check Constraint on 'ENQUIRIES'
ALTER TABLE ENQUIRIES
ADD (CONSTRAINT AVCON_1201606313_TWIN__000 CHECK (TWIN_STREAM_REQUIRED IN ('YES', 'NO')))
ADD (CONSTRAINT AVCON_1202213037_TWIN__000 CHECK (TWIN_STREAM_REQUIRED IN ('YES', 'NO')))
/
PROMPT Creating Check Constraint on 'ENQUIRIES'
ALTER TABLE ENQUIRIES
ADD (CONSTRAINT AVCON_1201606313_EXIST_000 CHECK (EXISTING_LOGGER IN ('YES', 'NO')))
ADD (CONSTRAINT AVCON_1202213037_EXIST_000 CHECK (EXISTING_LOGGER IN ('YES', 'NO')))
/
PROMPT Creating Check Constraint on 'ENQUIRIES'
ALTER TABLE ENQUIRIES
ADD (CONSTRAINT AVCON_1201606313_LOAD__000 CHECK (LOAD_CONTROL_TYPE IN ('Constant', 'On/Off', 'Modulating')))
ADD (CONSTRAINT AVCON_1202213037_LOAD__000 CHECK (LOAD_CONTROL_TYPE IN ('Constant', 'On/Off', 'Modulating')))
/
PROMPT Creating Check Constraint on 'ENQUIRIES'
ALTER TABLE ENQUIRIES
ADD (CONSTRAINT AVCON_1201606313_EXIST_001 CHECK (EXISTING_METER_OWNER IN ('S', 'T', 'C')))
ADD (CONSTRAINT AVCON_1202213037_EXIST_001 CHECK (EXISTING_METER_OWNER IN ('S', 'T', 'C')))
/
PROMPT Creating Check Constraint on 'ENQUIRIES'
ALTER TABLE ENQUIRIES
ADD (CONSTRAINT AVCON_1201606313_EXIST_002 CHECK (EXISTING_CONVERTOR IN ('YES', 'NO')))
ADD (CONSTRAINT AVCON_1202213037_EXIST_002 CHECK (EXISTING_CONVERTOR IN ('YES', 'NO')))
/
PROMPT Creating Check Constraint on 'ENQUIRIES'
ALTER TABLE ENQUIRIES
ADD (CONSTRAINT AVCON_1201606313_MARKE_000 CHECK (MARKET_SECTOR_CODE IN ('I', 'D')))
ADD (CONSTRAINT AVCON_1202213037_MARKE_000 CHECK (MARKET_SECTOR_CODE IN ('I', 'D')))
/

View File

@@ -1,6 +1,6 @@
-- C:\Andy\svn\WEBMIP\Schema\mip.ind
--
-- Generated for Oracle 10g on Tue Jan 29 11:31:54 2008 by Server Generator 10.1.2.6.18
-- Generated for Oracle 10g on Tue Feb 05 12:03:58 2008 by Server Generator 10.1.2.6.18
PROMPT Creating Index 'REGU_RETY_FK_I'

View File

@@ -1,6 +1,6 @@
-- C:\Andy\svn\WEBMIP\Schema\mip.sql
--
-- Generated for Oracle 10g on Tue Jan 29 11:31:54 2008 by Server Generator 10.1.2.6.18
-- Generated for Oracle 10g on Tue Feb 05 12:03:59 2008 by Server Generator 10.1.2.6.18
SPOOL mip.lst

View File

@@ -1,6 +1,6 @@
-- C:\Andy\svn\WEBMIP\Schema\mip.sqs
--
-- Generated for Oracle 10g on Tue Jan 29 11:31:54 2008 by Server Generator 10.1.2.6.18
-- Generated for Oracle 10g on Tue Feb 05 12:03:58 2008 by Server Generator 10.1.2.6.18
PROMPT Creating Sequence 'FLTR_SEQ'
CREATE SEQUENCE FLTR_SEQ
@@ -74,6 +74,13 @@ CREATE SEQUENCE DORO_SEQ
NOCYCLE
/
PROMPT Creating Sequence 'QUEV_SEQ'
CREATE SEQUENCE QUEV_SEQ
NOMAXVALUE
NOMINVALUE
NOCYCLE
/
PROMPT Creating Sequence 'MOCO_SEQ'
CREATE SEQUENCE MOCO_SEQ
START WITH 20080000
@@ -129,6 +136,13 @@ CREATE SEQUENCE COME_SEQ
NOCYCLE
/
PROMPT Creating Sequence 'ENEV_SEQ'
CREATE SEQUENCE ENEV_SEQ
NOMAXVALUE
NOMINVALUE
NOCYCLE
/
PROMPT Creating Sequence 'REGU_SEQ'
CREATE SEQUENCE REGU_SEQ
START WITH 20080000

View File

@@ -1,6 +1,6 @@
-- C:\Andy\svn\WEBMIP\Schema\mip.tab
--
-- Generated for Oracle 10g on Tue Jan 29 11:31:53 2008 by Server Generator 10.1.2.6.18
-- Generated for Oracle 10g on Tue Feb 05 12:03:58 2008 by Server Generator 10.1.2.6.18
@@ -244,6 +244,7 @@ CREATE TABLE QUOTE_EVENTS
,QUTE_ID NUMBER NOT NULL
,DESCRIPTION VARCHAR2(250)
,EVENT_DATE DATE NOT NULL
,ID NUMBER(*,0) NOT NULL
)
/
@@ -268,9 +269,10 @@ CREATE TABLE SERVICE_PRESSURES
PROMPT Creating Table 'ENQUIRY_EVENTS'
CREATE TABLE ENQUIRY_EVENTS
(ENQU_ID NUMBER NOT NULL
,ENST_CODE VARCHAR2(80) NOT NULL
,ENST_CODE VARCHAR2(80)
,DESCRIPTION VARCHAR2(250)
,EVENT_DATE DATE NOT NULL
,ID NUMBER(*,0) NOT NULL
)
/

View File

@@ -5,19 +5,7 @@ SELECT enqu_id
FROM (SELECT enqu_id
,event_date
,enst_code
,decode(enst_code
,'INP'
,1
,'SUBMITTED'
,2
,'QUOTED'
,3) AS this_event
,MAX(decode(enst_code
,'INP'
,1
,'SUBMITTED'
,2
,'QUOTED'
,3)) over(PARTITION BY enqu_id) AS max_event
,id
,MAX(id) over(PARTITION BY enqu_id) AS max_id
FROM enquiry_events)
WHERE this_event = max_event;
WHERE id = max_id

View File

@@ -6,36 +6,7 @@ SELECT qute_id
FROM (SELECT qute_id
,event_date
,qust_code
,decode(qust_code
,'INP'
,1
,'AV'
,2
,'SELREJ'
,3
,'SELECTED'
,5
,'REJECTED'
,6
,'ACCEPTED'
,7
,'LAPSED'
,8) AS this_event
,MAX(decode(qust_code
,'INP'
,1
,'AV'
,2
,'SELREJ'
,3
,'SELECTED'
,5
,'REJECTED'
,6
,'ACCEPTED'
,7
,'LAPSED'
,8)) over(PARTITION BY qute_id) AS max_event
,id
,MAX(id) over(PARTITION BY qute_id) AS max_event
FROM quote_events)
WHERE this_event = max_event
/
WHERE id = max_event