WLF_ORPHAN_CLASSES_ARS_V

Details

  • Schema: FUSION

  • Object owner: WLF

  • Object type: VIEW

Columns

Name

COURSE_LEARNING_ITEM_ID

CLASS_LEARNING_ITEM_ID

LEARNER_ID

EVENT_TYPE

EVENT_ASSIGNMENT_ID

CLASS_ASSIGNMENT_RECORD_ID

CLASS_ASSIGN_STATUS

CLASS_ASSIGNED_ON_DATE

CALCULATED_DUE_DATE

ENTERPRISE_ID

EFFECTIVE_START_DATE

EFFECTIVE_END_DATE

CREATED_BY

LAST_UPDATE_LOGIN

COURSE_ASSIGNMENT_RECORD_ID

COURSE_ASSIGNMENTS_STATUS

COURSE_EVENT_TYPE

AR_ONLY

Query

SQL_Statement

WITH orphan_active_class_arec AS (

SELECT

li_class.course_learning_item_id course_learning_item_id,

class_arec.event_type class_event_type,

class_arec.learner_id class_learner_id,

class_arec.event_assignment_id class_ea_id,

class_arec.learning_item_id class_lid,

class_arec.assignment_record_id class_assignment_record_id,

class_arec.status class_assign_status,

class_arec.enterprise_id,

class_arec.effective_start_date,

class_arec.effective_end_date,

class_arec.assigned_on_date class_assigned_on_date,

class_arec.calculated_due_date,

class_arec.created_by,

class_arec.last_update_login

FROM

wlf_assignment_records_f class_arec

INNER JOIN wlf_li_classes_f li_class ON li_class.learning_item_id = class_arec.learning_item_id

AND trunc(SYSDATE) BETWEEN li_class.effective_start_date AND li_class.effective_end_date

LEFT OUTER JOIN wlf_ar_relations_f ar ON ar.assignment_record_id = class_arec.assignment_record_id

AND trunc(SYSDATE) BETWEEN ar.effective_start_date AND ar.effective_end_date

AND relation_type = 'ORA_OFFERING_COURSE'

AND related_object_type = 'ORA_COURSE'

WHERE

ar.relation_id IS NULL

AND trunc(SYSDATE) BETWEEN class_arec.effective_start_date AND class_arec.effective_end_date

AND class_arec.event_type IN (

'ORA_JOIN_ASSIGNMENT',

'ORA_REQUIRE_ASSIGNMENT'

)

AND class_arec.status = 'ORA_ASSN_REC_ACTIVE'

AND class_arec.learner_id IS NOT NULL

),orphan_active_course_arec AS (

SELECT

course_arec.assignment_record_id course_arec_id,

course_arec.learning_item_id course_lid,

course_arec.learner_id course_learner_id,

course_arec.status course_arec_status,

course_arec.event_type course_event_type,

course_arec.event_assignment_id course_ea_id,

ar.relation_id,

ar.assignment_record_id related_class_arec_id,

ROW_NUMBER() OVER(

PARTITION BY course_arec.learning_item_id,course_arec.learner_id

ORDER BY

course_arec.learning_item_id,course_arec.learner_id,course_arec.assigned_on_date ASC

) rnum,

(

CASE

WHEN orphan_class_arec.class_event_type = 'ORA_REQUIRE_ASSIGNMENT'

AND course_arec.event_type = 'ORA_JOIN_ASSIGNMENT' THEN 'N'

WHEN orphan_class_arec.class_event_type = 'ORA_JOIN_ASSIGNMENT'

AND course_arec.event_type = 'ORA_REQUIRE_ASSIGNMENT'

AND trunc(course_arec.assigned_on_date) <= trunc(orphan_class_arec.class_assigned_on_date) THEN 'Y'

WHEN orphan_class_arec.class_event_type = course_arec.event_type

AND trunc(course_arec.assigned_on_date) <= trunc(orphan_class_arec.class_assigned_on_date) THEN 'Y'

ELSE 'N'

END

) course_arec_matchable

FROM

orphan_active_class_arec orphan_class_arec

INNER JOIN wlf_assignment_records_f course_arec ON course_arec.learning_item_id = orphan_class_arec.course_learning_item_id

AND course_arec.learner_id = orphan_class_arec.class_learner_id

LEFT OUTER JOIN wlf_ar_relations_f ar ON ar.related_object_id = course_arec.assignment_record_id

AND trunc(SYSDATE) BETWEEN ar.effective_start_date AND ar.effective_end_date

AND ar.relation_type = 'ORA_OFFERING_COURSE'

AND ar.related_object_type = 'ORA_COURSE'

WHERE

ar.relation_id IS NULL

AND trunc(SYSDATE) BETWEEN course_arec.effective_start_date AND course_arec.effective_end_date

AND course_arec.event_type IN (

'ORA_JOIN_ASSIGNMENT',

'ORA_REQUIRE_ASSIGNMENT'

)

AND course_arec.status = 'ORA_ASSN_REC_ACTIVE'

AND course_arec.learner_id IS NOT NULL

),target_orphans AS (

SELECT

orphan_class_arec.*,

orphan_course_arec.course_lid,

orphan_course_arec.course_arec_id,

orphan_course_arec.course_arec_status,

orphan_course_arec.course_event_type,

DECODE(orphan_course_arec.course_lid, NULL, 'N', 'Y') ar_only,

rnum

FROM

orphan_active_class_arec orphan_class_arec

LEFT OUTER JOIN orphan_active_course_arec orphan_course_arec ON orphan_course_arec.course_lid = orphan_class_arec.course_learning_item_id

AND orphan_course_arec.course_learner_id = orphan_class_arec.class_learner_id

AND orphan_course_arec.course_arec_matchable = 'Y'

AND (rnum IS NULL OR rnum = 1)

)

SELECT

course_learning_item_id,

class_lid class_learning_item_id,

class_learner_id learner_id,

class_event_type event_type,

class_ea_id event_assignment_id,

class_assignment_record_id,

class_assign_status,

class_assigned_on_date,

calculated_due_date,

enterprise_id,

effective_start_date,

effective_end_date,

created_by,

last_update_login,

course_arec_id course_assignment_record_id,

course_arec_status course_assignments_status,

course_event_type,

ar_only

FROM

target_orphans

ORDER BY

course_learning_item_id,

class_event_type,

class_learner_id,

class_lid