1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
alter Procedure Proc_Check
@CardId varchar(20)
As
begin
create table #t (CardId varchar(20),InTime datetime,OutTime datetime) --进入时间、出去时间
create table #FanQianHui (CardId varchar(20),Data datetime,flag int)
insert into #FanQianHui select CardId,Data,flag from FanQianHui where CardId=@CardId
declare @InTime datetime,@OutTime datetime,@Flag int
declare @cnt int
select @cnt=count(*) from #FanQianHui where Flag=1
while @cnt>0
BEGIN
select top 1 @InTime=data,@Flag=flag from #FanQianHui
if @Flag=1
begin
set rowcount 1
delete from #FanQianHui where data=@InTime
select top 1 @OutTime=data,@Flag=flag from #FanQianHui where data>@InTime
if(@Flag=1) --连续进入两次 因此 出来时间为null
begin
insert into #t values (@CardId,@InTime,null)
end
else
begin
set rowcount 1
delete from #FanQianHui where data=@OutTime and flag=0
insert into #t values (@CardId,@InTime,@OutTime)
end
end
else
Begin
set rowcount 1
delete from #FanQianHui where data=@InTime
End
select @cnt=count(*) from #FanQianHui where Flag=1
end
select * from #t
end
--你试试 没有测试
1、每个实体为一个表,1-1关系可以合成一个表,也可以选一个表作为主表,另一个作为从表,使用从表主键参考主表主键(不新增关联列)或者从表新增列参考主表主键(从表新增的列要加上unique约束),关系的属性加入到任意方都可以;1-*关系*方为从表,1方为主表,从表新增列参考主表主键,关系的属性加入到从表方;*-*关系需要新增表,表的主键为参考双方表主键的两个列的联合主键,关系的属性加入到新增表中。2、反向逆推之,注意在1-1关系中,ER图的实体结构可能有多种样式,关系的属性也不太确定;1-*中,关系的属性不太确定。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)