用SQL解答的,有ER图,求解答!谢谢了

用SQL解答的,有ER图,求解答!谢谢了,第1张

很明显 你这个是个反潜回(一进一出对应)的功能 应该有一个CardID 或者 MemberID,最接近的两个时间一定是进、出。

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-*中,关系的属性不太确定。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6722509.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存