三个表
comp
comp_id    pk
comp_name  depar
dept_id   pk
comp_id   fk
dept_name 
employee
e_id    pk
dept_id fk
e_name     
e_level     number
e_hiredate  date求:员工姓名,编码
满足:部门是财务部
公司名称是csdn
从2000-01-01 到 2003-01-01
要求:将部门是监察部的level普调1,
并更新e_hiredate为当前时间

解决方案 »

  1.   

    select a.e_id,a.e_name from employee a,depar b,employee c where.a.dept_id=b.dept_id and b.comp_id=c.comp_id and a.e_hiredate>to_date('2000-01-01','yyyy-mm-dd') and a.e_hiredate<to_date('2003-01-01','yyyy-mm-dd') and b.dept_name='财务部' and c.comp_name='csdn';update employee set e_level=1,e_hiredate=sysdate where dept_id=(select dept_id from depar where dept_name='监察部');
      

  2.   

    SELECT e.e_name, e,e_id
    FROM comp c, depar d, employee e
    WHERE c.comp_id = d.comp_id and e.dept_id = d.dept_id(+)
      and d.dept_name = '财务部'
      and c.comp_name = 'csdn'
      and e.e_hiredate between to_date('2000-01-01','yyyy-mm-dd') and to_date('2003-01-01','yyyy-mm-dd');  update employee set e_level = 1, e_hiredate=sysdate where dept_id = (select dept_id from depar where dept_name = '监察部');
      

  3.   

    e.dept_id = d.dept_id(+)要用外连接。
      

  4.   

    这不是考试dba的是招程序员的所以不是难要求:将部门是监察部的level普调1,
    并更新e_hiredate为当前时间这个不是等于1
    是都+1
    怎么写
      

  5.   

    update employee set e_level = e_level+1, e_hiredate=sysdate where dept_id = (select dept_id from depar where dept_name = '监察部');