我正在尝试根据以下两个表格生成报告:
Name Start Year End Year No. Of Students Fill Order
School-ABC 2000 2004 1 1
School-DEF 2000 2004 2 3
School-GHI 2000 2004 1 2
Name Start Year End Year Joined On
Student-1 2000 2004 01-Jan
Student-2 2000 2004 03-Jan
Student-3 2000 2004 02-Jan
Student-4 2000 2004 15-Jan
预期输出如下:
Name Start Year End Year Joined On School
Student-1 2000 2004 01-Jan School-ABC
Student-2 2000 2004 03-Jan School-DEF
Student-3 2000 2004 02-Jan School-GHI
Student-4 2000 2004 15-Jan School-DEF
生成数据背后的逻辑:
- 第一个表格包含学校列表和可用座位(以及在FCFS基础上分配给学生的座位的优先级)
- 第二个表格包含入学学生名单的数据,包括入学日期和课程开始/结束年份。
- 我需要根据分配给每个学生的学校“填写订单”进行填充。
在分析了一段时间后,我得出一个结论,仅使用选择查询可能无法实现。目前,我计划为每个表使用两个游标并逐行处理记录。有没有更好的方法或者可以通过选择语句来实现?TIA
笔记:
- 我使用的数据库是Oracle 10g
- 我无法创建任何临时表或更改任何表中的数据。我严格拥有对数据库的只读访问权限。