批量增加数据.

lucky749 2008-09-13 02:55:23
我要每天第一个人登记的时候进行数据初始化(批量增加)
如何做到数据正确性.就是说如果同时有两个人一起按登记.那么只有一个人是成功的.一个是不成功的..
因为初始化有可能数据量比较大..
谢谢.各位仁兄..
...全文
96 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
-狙击手- 2008-09-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lucky749 的回复:]
回复(无枪狙击手)
没错.你是可以实现谁没有登记考勤.但是你不能明细的显示出.人.几月几号.星期几.无打卡.
你只能显示出 没有考勤过的名单.而不能将时间一并显示出来.因为客户要的是明细.而不是统计
[/Quote]

不对,

做个简单的例子:

------------------------------------
-- Author: happyflystone
-- Version:V1.001
-- Date:2008-09-13 17:44:47
------------------------------------

-- Test Data: tb
If object_id('tb') is not null
Drop table tb
Go
Create table tb(id int,d datetime)
Go
Insert into tb
select 1,'2008-01-01 12:00' union all
select 2,'2008-01-01 12:00'
Go
-- Test Data: ta
If object_id('ta') is not null
Drop table ta
Go
Create table ta(id int,name nvarchar(1))
Go
Insert into ta
select 1,'a' union all
select 2,'b' union all
select 3,'c' union all
select 4,'d' union all
select 5,'e'
Go

--Start
Select a.* ,case when b.d is null then '无打卡记录' else '有打卡记录' end as col
from ta a
left join tb b on a.id = b.id


--Result:
/*
id name col
----------- ---- ----------
1 a 有打卡记录
2 b 有打卡记录
3 c 无打卡记录
4 d 无打卡记录
5 e 无打卡记录

(所影响的行数为 5 行)

*/
--End

当然 你还可以根据日期进行行列的转换工作

zoroz 2008-09-13
  • 打赏
  • 举报
回复
帮顶
lucky749 2008-09-13
  • 打赏
  • 举报
回复
回复(无枪狙击手)
没错.你是可以实现谁没有登记考勤.但是你不能明细的显示出.人.几月几号.星期几.无打卡.
你只能显示出 没有考勤过的名单.而不能将时间一并显示出来.因为客户要的是明细.而不是统计
-狙击手- 2008-09-13
  • 打赏
  • 举报
回复
回复(无枪狙击手)
我要初始化所有人的记录是为了,方便,直观的统计.考勤情况.如果客户需要统计某月某人的具体考勤情况的话.你能查到的是他的正常出勤情况.而不是非正常的.即无登记.那么需要客户根据出勤情况来逐一来核对.

--


你有员工表吧,有员工表查询语句可以实现这个要求的呀,
lucky749 2008-09-13
  • 打赏
  • 举报
回复
回复(无枪狙击手)
我要初始化所有人的记录是为了,方便,直观的统计.考勤情况.如果客户需要统计某月某人的具体考勤情况的话.你能查到的是他的正常出勤情况.而不是非正常的.即无登记.那么需要客户根据出勤情况来逐一来核对.

回复(天使赶不走)
为什么不建立的是一个job这样就不存在非要第一个人来的时候初始化
可不可以说详细点.?或者留下个QQ号.方便点.

在此谢过2个大侠
一者仁心 2008-09-13
  • 打赏
  • 举报
回复
第一 为什么不建立的是一个job这样就不存在非要第一个人来的时候初始化

如果你非要这样的话 可以将表锁死 事务处理完后再解锁
-狙击手- 2008-09-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lucky749 的回复:]
是这样的.
我做的是考勤.我每天第一个人来登记的时候.首先要初始化所有人的记录出来.然后进行根据情况进行update.
那么如果两个人一起登记了的化.我就等于初始化了两次.数据量就多一半啊.
[/Quote]


那你这种处理似乎有点不合常理吧

应该是每一个来登记就生成一条记录 ,要初始化什么 呢
lucky749 2008-09-13
  • 打赏
  • 举报
回复
是这样的.
我做的是考勤.我每天第一个人来登记的时候.首先要初始化所有人的记录出来.然后进行根据情况进行update.
那么如果两个人一起登记了的化.我就等于初始化了两次.数据量就多一半啊.
-狙击手- 2008-09-13
  • 打赏
  • 举报
回复
进行事务的管理呀,
再说为什么 两个人一起登记就不能成功了,只要你的主键不重复不就行了

27,580

社区成员

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

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