可根据时间点统计历史记录的表结构如何设计?

烟波钓 2011-09-16 02:03:53
需求如下:
有一个记录人员基本信息的表,其中有的字段的值可变化,如员工状态:在职,休假,离职等。
需要设计一套结构来保存这些状态变的历史记录,
并且可按照一个时间点统计某种状态员工的数量
...全文
341 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
烟波钓 2011-09-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dawugui 的回复:]
引用楼主 yanbuodiao 的回复:
需求如下:
有一个记录人员基本信息的表,其中有的字段的值可变化,如员工状态:在职,休假,离职等。
需要设计一套结构来保存这些状态变的历史记录,
并且可按照一个时间点统计某种状态员工的数量

序号(自增),员工号,员工状态,变更时间
每出现一次状态,按照员工号增加条记录,序号自增,查询时可查询该员工号最大序号的记录即可.

select t……
[/Quote]
我没说清楚 就不在重复了 呵呵 这个结构能否根据某个时间点进行统计呢?
烟波钓 2011-09-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 fredrickhu 的回复:]
状态变更表(员工编号 varchar(100),变更时间 datetime,变更前状态 varchar(10),变更后状态varchar(10),是否变更 bit)
[/Quote]



同样的问题 可变更的数据不仅仅是属于某一个字段的
烟波钓 2011-09-19
  • 打赏
  • 举报
回复
1 楼
不需要记录变更的是哪个字段么?
可能是我没说清楚 需要记录的变化不仅仅是员工的状态 还有其他的字段也可能发生变化
完后根据某个字段可统计出来特定时间点的员工人数
小童 2011-09-16
  • 打赏
  • 举报
回复
操作一条记录就新增一条,加个操作时间,
geniuswjt 2011-09-16
  • 打赏
  • 举报
回复

状态变更表(流水号,员工编号,变更时间,变更前状态,变更后状态)
dawugui 2011-09-16
  • 打赏
  • 举报
回复
[Quote=引用楼主 yanbuodiao 的回复:]
需求如下:
有一个记录人员基本信息的表,其中有的字段的值可变化,如员工状态:在职,休假,离职等。
需要设计一套结构来保存这些状态变的历史记录,
并且可按照一个时间点统计某种状态员工的数量
[/Quote]
序号(自增),员工号,员工状态,变更时间
每出现一次状态,按照员工号增加条记录,序号自增,查询时可查询该员工号最大序号的记录即可.

select t.* from tb t where 序号 = (select max(序号) from tb where 员工号 = t.员工号)
select t.* from tb t where not exists (select 1 from tb where 员工号 = t.员工号 and 序号 > t.序号)

这种设计有点类似企业基本数据,在税务,工商如果出现变更,就增加一条记录,同时序号+1.
--小F-- 2011-09-16
  • 打赏
  • 举报
回复
状态变更表(员工编号 varchar(100),变更时间 datetime,变更前状态 varchar(10),变更后状态varchar(10),是否变更 bit)
-晴天 2011-09-16
  • 打赏
  • 举报
回复
状态变更表(员工编号,变更时间,变更前状态,变更后状态)

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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