Oracle
 sql >> база данни >  >> RDS >> Oracle

Заявка за свързване на множество таблици в Oracle SQL плюс 11g

Опитайте това:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. От XML вътре в CLOB, до таблица на Oracle със списък от пътища

  2. Свързване на Oracle с помощта на ODP.NET с Enterprise Library DAAB

  3. Грешка ORA-00604 при пакетно вмъкване в TransactionScope

  4. Въведение в PL/SQL Ref курсори в Oracle Database

  5. Защо не мога да създам тригери върху обекти, собственост на SYS?