SQL员工历史记录的求法

free7090 2008-08-07 05:42:04
部门履历表
部门编号 部门名称 部门开始时间 部门结束时间
AL TESTA 2004/4/1 2004/7/31
AL TESTB 2004/8/1 2006/10/15
CT TESTC 2004/4/1 9999/12/31
AD TESTD 2006/10/16 9999/12/31
员工履历表
员工编号,调换部门时间,部门编号,职务编号 区分
0001 2004/4/1 al ZW01 0
0001 2005/5/5 al ZW02 0
0001 2008/8/8 ad ZW05 0
0002 2004/4/1 ct zw01 0
0002 2006/12/10 ad zw08 0
0003 2004/4/1 ct zw01 0
0003 2007/12/31 ct zw01 1

区分1:离职 0:在职
职务履历表
职务编号 职务名称 职务开始时间 职务结束时间
zw01 普通员工 1990/04/01 2004/12/31
zw02 主任 2004/4/1 9999/12/31
zw01 代理主任 2005/1/1 9999/12/31

根据输入的时间
例如:输入部门的时间2004/10/1 的情况,求得该时间,部门内员工的信息和该时间内,员工的职务信息。

如果输入2008/8/7时间,取得这个时间点内员工的信息
...全文
65 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
bwu851 2008-08-08
  • 打赏
  • 举报
回复

delcare @time datetime
set @time = '....' -- 此处输入时间

select a.部门编号, a.部门名称, b.员工编号, c.职务名称
from 部门履历表 a
inner join 员工履历表 b on a.部门编号 = b.部门编号
inner join 职务履历表 c on c.职务编号 = b.职务编号
where a.部门开始时间 >= @time and a.部门结束时间 <=@time
and b.调换部门时间 <= @time and b.区分 = 0


没进行测试, 不好意思.
(另外, 你的"职务履历表"里怎么出现两次ZW01呀, 是不是打错了??)
free7090 2008-08-07
  • 打赏
  • 举报
回复
??????

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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