题目如下:
下表是某公司的部门变迁记录表DEPT_CHG:
Id Deptcode        Deptname         Effectivedate       Reason
        (部门编码)         (部门名称)       (生效日期)          (变动原因) 1 101          财务部         2000/5/1           成立
2 10101          财务部1         2000/6/1           成立
3 10102          财务部2         2000/7/1           成立
3 102          行政部         2000/6/5           成立
10201          行政部1         2000/6/9           成立
103          销售部1         2000/7/5           成立
101          财务部(公司)     2001/5/1           更名
102          行政部(公司)     2001/6/5           更名
102          财务部(集团)     2002/10/10           更名
10101          财务部(公司)     2001/5/1           更名问题:
1.查询出所有部门的最新信息(Deptcode,Effectivedate,Deptname),写出相应的sql语句。
注:1.部门编码是部门的唯一标示,不会被改变。
    2.部门名称信息应该以最后生效的部门为准。
2.查询出包含下级部门并发生过更名的部门。原题。一字不易。求达人给个答案学习下~~~

解决方案 »

  1.   

    额 发表后排版怎么这样了啊~~
    第一列的1 2 3 3 都是Id,后边那些以10打头的数字是部门编码。
    csdn啥时候能直接让在帖子里贴图片呀 郁闷~~~
      

  2.   

    1.
    用row_number() over()就可以了select *
      from (
    select t.*,
           row_number() over(partition by Deptcode order by Effectivedate desc) rn
      from DEPT_CHG t
           ) x
     where x.rn = 1
      

  3.   

    2.查询出包含下级部门并发生过更名的部门。 语议分析: 1)查询出包含下级部门的部门
               2)变化是指:
              a. 该部门发生了变化
                        b. 该部门的下级部门发生了变化
                        c. a and b
                        d. a or b
    没理解这个变更