今天写个统计,原本对表变量只是耳闻,大体知道点意思,今天查联机帮助后觉得比较有用,就在今天实用一下,在"一棵秋天的树"大哥的帮助下,顺里写出来,感觉sql的使用,会了,真的就很简单,而且高效.下面是偶写的个统计:
--2005-10-19 21:20:25
--desigined by whbo
--designed at 2005-10-19
set nocount on --节约反馈资源
declare @intTax1 bigint,@intTax2 bigint,@intTax bigint
Declare @TSourceName table(SourceName varchar(32)) --使用表变量
insert into @TSourceName values('10062')
insert into @TSourceName values('10071')
insert into @TSourceName values('10080')
insert into @TSourceName values('10067')
insert into @TSourceName values('10073')
select @intTax1=sum(convert(bigint,wantedamount*0.03)) from moneylog a inner join @TSourceName b
on a.wantedamount>0 and a.writetime>convert(varchar(10),getdate()) and a.sourcename=b.sourcename
print '0.03的税收总数:'
print convert(varchar(64),@intTax1)
select @intTax2=sum(convert(bigint,wantedamount*0.05)) from moneylog where wantedamount>0 and writetime>convert(varchar(10),getdate())
and sourcename in ('10034','10063','10055')
print '0.05的税收总数:'
print convert(varchar(64),@intTax2)
print '所有税收今天的总数:'
print convert(varchar(64),@intTax1+@intTax2)
print '从2005-08-24到现在的税收总数:'
select @intTax1=sum(convert(bigint,wantedamount*0.03)) from moneylog a inner join @TSourceName b
on a.wantedamount>0 and a.sourcename=b.sourcename
select @intTax2=sum(convert(bigint,wantedamount*0.05)) from moneylog where wantedamount>0
and sourcename in ('10034','10063','10055')
select @intTax=@intTax1+@intTax2
Print convert(varchar(10),@intTax)