可用函数 如调用时Fun_Total(c.badge,c.term) 函数如下: create function funtotal(@id varchar(10),@CurrTerm datetime) int returns as begin select @total=count(*) from c where badge=@badge and datediff(day,term,@CurrTerm )=0 set funtotal=@total return end
a表是员工信息,b表是刷卡纪录(纪录时间和卡号id)c表是日报表 create trigger tu_b_au on b for insert as begin declare @cardno varchar(n),--卡号 @now char(10), @fee decimal(18,4) select @cardno=卡号, @fee=消费金额 from inserted select @now=convert(char(10),getdate(),120) --判断此前有没有刷卡 if not exists(select * from b where 卡号=@cardno and convert(char(10),刷卡时间,120)=@now) --如没有则新插入记录 insert into c 卡号,等记录。 else --否则,修改记录 update c set 消费金额=消费金额+@fee, 刷卡次数=刷卡次数+1 end 大意如此。
如调用时Fun_Total(c.badge,c.term)
函数如下:
create function funtotal(@id varchar(10),@CurrTerm datetime) int
returns
as
begin
select @total=count(*) from c where badge=@badge and datediff(day,term,@CurrTerm )=0
set funtotal=@total
return
end
create trigger tu_b_au
on b
for insert
as
begin
declare @cardno varchar(n),--卡号
@now char(10),
@fee decimal(18,4)
select @cardno=卡号,
@fee=消费金额
from inserted
select @now=convert(char(10),getdate(),120)
--判断此前有没有刷卡
if not exists(select * from b where 卡号=@cardno and convert(char(10),刷卡时间,120)=@now)
--如没有则新插入记录
insert into c
卡号,等记录。
else
--否则,修改记录
update c set 消费金额=消费金额+@fee,
刷卡次数=刷卡次数+1
end
大意如此。