WLF_LEARNER_MULTI_ARS_V
Details
-
Schema: FUSION
-
Object owner: WLF
-
Object type: VIEW
Columns
Name |
---|
LEARNING_ITEM_ID LEARNER_ID ASSIGNMENT_RECORD_RANK ASSIGNED_ON_DATE LEARNING_ITEM_NUMBER LEARNING_ITEM_TYPE ASSIGNMENT_RECORD_ID EFFECTIVE_START_DATE EFFECTIVE_END_DATE EVENT_TYPE STATUS ASSIGNMENT_RECORD_COUNT |
Query
SQL_Statement |
---|
WITH multiple_assign_records AS ( SELECT learningitem.learning_item_id, learningitem.learning_item_number, learningitem.learning_item_type, assignmentrecords.learner_id, COUNT(learningitem.learning_item_id) assignment_record_count FROM wlf_learning_items_f learningitem INNER JOIN wlf_assignment_records_f assignmentrecords ON learningitem.learning_item_id = assignmentrecords.learning_item_id AND trunc(SYSDATE) BETWEEN assignmentrecords.effective_start_date AND assignmentrecords.effective_end_date AND assignmentrecords.assigned_on_date <= trunc(SYSDATE) AND assignmentrecords.learner_id IS NOT NULL AND assignmentrecords.status IN ( 'ORA_ASSN_REC_ACTIVE', 'ORA_ASSN_REC_CONTENT_COMPLETE', 'ORA_ASSN_REC_REQUESTED', 'ORA_ASSN_REC_PENDING_ACTIVE', 'ORA_ASSN_REC_PENDING_PAYMENT', 'ORA_ASSN_REC_PENDING_PREREQ', 'ORA_ASSN_REC_REQ_APPROVED', 'ORA_ASSN_REC_WAITLISTED', 'ORA_ASSN_REC_WITHDRAW_PENDING' ) AND assignmentrecords.event_type IN ( 'ORA_JOIN_ASSIGNMENT', 'ORA_REQUIRE_ASSIGNMENT' ) WHERE trunc(SYSDATE) BETWEEN learningitem.effective_start_date AND learningitem.effective_end_date AND learningitem.learning_item_type = 'ORA_COURSE' GROUP BY learningitem.learning_item_id, learningitem.learning_item_number, learningitem.learning_item_type, assignmentrecords.learner_id HAVING COUNT(learningitem.learning_item_id) > 1 ), multi_assns_rank AS ( SELECT multi_arec.*, assignmentrecords.assignment_record_id, assignmentrecords.effective_start_date, assignmentrecords.effective_end_date, assignmentrecords.event_type, assignmentrecords.status, trunc(assignmentrecords.assigned_on_date) assigned_on_date, ( CASE WHEN multi_arec.learning_item_type = 'ORA_COURSE' THEN (SELECT 100 FROM wlf_ar_relations_f ar WHERE ar.related_object_id = assignmentrecords.assignment_record_id AND ar.relation_type = 'ORA_OFFERING_COURSE' AND ar.related_object_type = 'ORA_COURSE' AND trunc(SYSDATE) BETWEEN ar.effective_start_date AND ar.effective_end_date AND rownum = 1) WHEN multi_arec.learning_item_type = 'ORA_CLASS' THEN (SELECT 100 FROM wlf_ar_relations_f ar WHERE ar.assignment_record_id = assignmentrecords.assignment_record_id AND ar.relation_type = 'ORA_OFFERING_COURSE' AND ar.related_object_type = 'ORA_COURSE' AND trunc(SYSDATE) BETWEEN ar.effective_start_date AND ar.effective_end_date AND rownum = 1) ELSE 0 END ) ar_relation_rank, ( CASE WHEN assignmentrecords.event_type = 'ORA_REQUIRE_ASSIGNMENT' AND assignmentrecords.status = 'ORA_ASSN_REC_REQUESTED' THEN 7 WHEN assignmentrecords.event_type = 'ORA_REQUIRE_ASSIGNMENT' AND assignmentrecords.status = 'ORA_ASSN_REC_REQ_APPROVED' THEN 6 WHEN assignmentrecords.event_type = 'ORA_REQUIRE_ASSIGNMENT' AND assignmentrecords.status = 'ORA_ASSN_REC_PENDING_PREREQ' THEN 5 WHEN assignmentrecords.event_type = 'ORA_REQUIRE_ASSIGNMENT' AND assignmentrecords.status = 'ORA_ASSN_REC_WAITLISTED' THEN 4 WHEN assignmentrecords.event_type = 'ORA_REQUIRE_ASSIGNMENT' AND assignmentrecords.status = 'ORA_ASSN_REC_PENDING_ACTIVE' THEN 3 WHEN assignmentrecords.event_type = 'ORA_REQUIRE_ASSIGNMENT' AND assignmentrecords.status = 'ORA_ASSN_REC_PENDING_PAYMENT' THEN 2 WHEN assignmentrecords.event_type = 'ORA_REQUIRE_ASSIGNMENT' AND assignmentrecords.status = 'ORA_ASSN_REC_ACTIVE' THEN 1 WHEN assignmentrecords.event_type = 'ORA_REQUIRE_ASSIGNMENT' AND assignmentrecords.status = 'ORA_ASSN_REC_CONTENT_COMPLETE' THEN 0 WHEN assignmentrecords.event_type = 'ORA_JOIN_ASSIGNMENT' AND assignmentrecords.status = 'ORA_ASSN_REC_WITHDRAW_PENDING' THEN 18 WHEN assignmentrecords.event_type = 'ORA_JOIN_ASSIGNMENT' AND assignmentrecords.status = 'ORA_ASSN_REC_REQUESTED' THEN 17 WHEN assignmentrecords.event_type = 'ORA_JOIN_ASSIGNMENT' AND assignmentrecords.status = 'ORA_ASSN_REC_REQ_APPROVED' THEN 16 WHEN assignmentrecords.event_type = 'ORA_JOIN_ASSIGNMENT' AND assignmentrecords.status = 'ORA_ASSN_REC_PENDING_PREREQ' THEN 15 WHEN assignmentrecords.event_type = 'ORA_JOIN_ASSIGNMENT' AND assignmentrecords.status = 'ORA_ASSN_REC_WAITLISTED' THEN 14 WHEN assignmentrecords.event_type = 'ORA_JOIN_ASSIGNMENT' AND assignmentrecords.status = 'ORA_ASSN_REC_PENDING_ACTIVE' THEN 13 WHEN assignmentrecords.event_type = 'ORA_JOIN_ASSIGNMENT' AND assignmentrecords.status = 'ORA_ASSN_REC_PENDING_PAYMENT' THEN 12 WHEN assignmentrecords.event_type = 'ORA_JOIN_ASSIGNMENT' AND assignmentrecords.status = 'ORA_ASSN_REC_ACTIVE' THEN 11 WHEN assignmentrecords.event_type = 'ORA_JOIN_ASSIGNMENT' AND assignmentrecords.status = 'ORA_ASSN_REC_CONTENT_COMPLETE' THEN 10 END ) AS status_rank FROM multiple_assign_records multi_arec INNER JOIN wlf_assignment_records_f assignmentrecords ON assignmentrecords.learning_item_id = multi_arec.learning_item_id AND assignmentrecords.learner_id = multi_arec.learner_id AND assignmentrecords.event_type IN ( 'ORA_JOIN_ASSIGNMENT', 'ORA_REQUIRE_ASSIGNMENT' ) AND trunc(SYSDATE) BETWEEN assignmentrecords.effective_start_date AND assignmentrecords.effective_end_date ) SELECT learning_item_id, learner_id, (status_rank - NVL(ar_relation_rank, 0)) assignment_record_rank, assigned_on_date, learning_item_number, learning_item_type, assignment_record_id, effective_start_date, effective_end_date, event_type, status, assignment_record_count FROM multi_assns_rank ORDER BY 1, 2, 3 |