我有三個表。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