我有三个表。Oracle SQL加11g中的多表加入查询
- 表
SCHOOL
:schoolcode(PK),year,schoolname。 - 表
ENROLMENT
:schoolcode,一年,类名,招收 - 表
CLASS
:schoolcode,今年的classid,客房
现在,我想找到的学校名单,在类名报名 - 1至4以及1-4级使用的教室数量。
我用下面的查询:
select
m.schoolcode, m.schoolname, sum(e.c1+e.c2+e.c3+e.c4), sum(c.rooms)
from
dise2k_enrolment09 e, dise2k_master m, dise2k_clsbycondition
where
m.schoolcode = e.schoolcode
and m.schoolcode = c.schoolcode
and e.year = '2011-12' and m.year = '2011-12' and c.year = '2011-12'
and classid in (1,2,3,4)
and e.classname in (1,2,3,4)
group by
m.schoolcode, m.schoolname
但结果显示不正确。在课堂上,入学人数远远高于实际人数。
号和类名是CLASSID不一样的东西。它是一个例子。对不起,它是我的错,我无法向你解释我的问题。实际上,classname的值为1至8,但classid的值为7,8,9,10(1,2级为7,8级3,4级,9级为5,6级,10级为7,8级) )。现在你能帮我找到答案。因为上述两个答案都行不通。 – user1579132 2012-08-07 06:28:15
编号Classname和classid不是一回事。它是一个例子。对不起,它是我的错,我无法向你解释我的问题。实际上,classname的值为1至8,但classid的值为7,8,9,10(1,2级为7,8级3,4级,9级为5,6级,10级为7,8级) )。我在(7,8)中写到了classid。现在你能帮我找到答案。因为上述两个答案都行不通。 – user1579132 2012-08-07 07:38:55