两关联表,基本表从变动表里取数据

llh6795 2014-09-10 04:22:27
基本情况表T1:

SFZH XM BS 。。。
198001 AA
198102 BB
198203 CC
198404 DD
。。。


变动情况表T2 :

SFZH XM BS 。。。
198001 AA 1
198102 BB
198706 EE 2
199007 FF 2
。。。

说明 1-----离职,2---新招聘员工

当有新增员工或者离职员工时,将变动信息填入基本表中,
T1
SFZH XM BS
198001 AA 1
198102 BB
198203 CC
198404 DD
198706 EE 2
199007 FF 2
。。。

说明:基本表有2000多条记录,举例时只取了几个相关字段,字段 SFZH 是两表的关联字段并且唯一,
判断有新增的时候才向基本表添加,如果在变动表BS为1,在基本表有的话打标识1
sql是2005版的,请大家指教,谢谢







...全文
119 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
llh6795 2014-09-11
  • 打赏
  • 举报
回复
大家还有什么号办法吗?请多多指点
--小F-- 2014-09-10
  • 打赏
  • 举报
回复
哦 。2005用不了。可惜。
--小F-- 2014-09-10
  • 打赏
  • 举报
回复
感觉可以用MERGE语句 当MATCH并且当BS=2的时候 INSERT 当BS=1的时候UPDATE
llh6795 2014-09-10
  • 打赏
  • 举报
回复
谢谢指点,每次手动执行
llh6795 2014-09-10
  • 打赏
  • 举报
回复
当向基本表添加,SFZH有重复的时候,不添加重复记录,有标识位取变动标识
xdashewan 2014-09-10
  • 打赏
  • 举报
回复
建触发器吧,难道你准备写个存储过程定时执行?还是每次自己手动执行?
IEEE_China 2014-09-10
  • 打赏
  • 举报
回复

---新增
 Insert into T1(SFZH,XM,BS)
 select SFZH,XM,BS from T2 where T2.BS=2 
 and T2.SFZH not in (select SFZH from T1)
 ---更新
 Update T1 set T1.BS=T2.BS from T2 
 where T2.BS=1 and T2.SFZH=T1.SFZH

27,579

社区成员

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

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