sql >> データベース >  >> RDS >> Oracle

Oracle SQLPlus11gの複数のテーブル結合クエリ

    これを試してください:

    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 c
    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 c.classid in(1,2,3,4) 
    and e.classname = c.classid
    group by m.schoolcode, m.schoolname 
    

    あなたがそれを持っている方法:and e.classname in(1,2,3,4) ORを持っているようなものです where句の演算子。

    (c.classid=1 or c.classid=2 or c.classid=3 or c.classid=4) 
    and 
    (e.classname=1 or e.classname=2 or e.classname=3 or e.classname=4)
    

    したがって、c.classidは「1」であり、e.classnameは「2」である可能性があります。これは間違っています

    更新 それでも問題は、c.classidを接続しないことだと思います e.classnameを使用

    次のようにしてみてください:

    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 c
    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 c.classid in(1,2,3,4) 
    and c.classid = decode(e.classname,1,7,2,7,3,8,4,8,5,9,6,9,7,10,8,10)
    group by m.schoolcode, m.schoolname 
    


    1. DB内のnull値によって占有されるメモリの量はどれくらいですか?

    2. 名前配列にないMySQL?

    3. 接続時にJavaアプリケーションがOracleに対して自身を識別するようにするにはどうすればよいですか?

    4. pgBadgerを使用したPostgreSQLログ分析