sql server 创建视图的sql语句问题

chenh_w 2014-02-26 05:13:48
小弟现在有这么两张表(员工:工号,姓名,。。。。)(教育经历:Id,工号,毕业日期,学历。。。)(省略了无关字段),我的考虑是如果在员工表里有学历字段就会产生数据冗余,所以准备用视图,要求是取第二张表里毕业时间最靠后的一条记录作为学历。我这种想法对吗?sql语句应该怎么写啊
...全文
210 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
suek225 2014-02-26
  • 打赏
  • 举报
回复
建议还是做这个冗余,毕竟这个冗余的信息并不多 如果有毕业时间最靠后的学历不是最高学历的情况呢? 没有规定禁止这样吧,比如博士毕业了去学个MBA,那学历就是硕士了
LongRui888 2014-02-26
  • 打赏
  • 举报
回复
试试这个:
select 工号,姓名,毕业日期,学历
from 
(
select a.工号,a.姓名,b.毕业日期,b.学历,
       ROW_NUMBER() over(partition by a.工号 order by b.毕业日期 desc) rownum
from 员工  a
inner join 教育经历 b
        on a.工号 = b.工号
)t
where rownum = 1

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧