【发布时间】:2013-01-23 10:06:38
【问题描述】:
我在处理特定的 Oracle 查询时遇到问题。我正在尝试编写一个查询来提取以下数据。
• “有多少之前因“不良行为”而被停学的学生已经被重新评估,以及 12 岁以上和 12 岁以下的学生人数”
我认为我需要使用三个表:人员状态历史记录(包含 REASON、SUSPEND_TO_DATE)、person_visit(包含 VISIT_DATE 等字段)和 person(包含 PERSON_ID 和 BIRTH_DATE 等字段)。
(PERSON_ID 在所有表中都是通用的。)
这是我的业余尝试,我仍然不能完全确定连接的使用以及如何仅使用 BIRTH_DATE 信息计算出 12 岁以上/12 岁以下是另一个问题。
select count (*) from person_status_history
inner join person_visit on person_status_history.person_id=person_visit.person_id
inner join person on person_visit.person_id=person.person_id
where person_status_history.reason_code = 85 and person_visit.reasses_appoint_no is not null and person.birth_date < '23-JAN-2000';
在基本的伪代码中,我想我需要开发的是(非常粗糙!):
SELECT * PERSON_ID WHERE SUSPEND_TO_DATE is NOT NULL AND REASON = "85" AND VISIT_DATE > SUSPEND_TO_DATE 并计算数字 >12 AND
谁能给点建议?
【问题讨论】: