当日,当年,当月是什么概念?
如果test1数据如上,
TEST2
DDD(INT) EEE(CHAR)
1 ASD
2 ASD
5 ASDSAD
那
TEST3 中hhh=ASD的记录有几条??
如果一条,DANGRI DANGYUE应该什么数?
如果多条,怎么区分??
如果test1数据如上,
TEST2
DDD(INT) EEE(CHAR)
1 ASD
2 ASD
5 ASDSAD
那
TEST3 中hhh=ASD的记录有几条??
如果一条,DANGRI DANGYUE应该什么数?
如果多条,怎么区分??
group by datepart(yy,CCC),b.EEE
当日,当月,当年是对今天来说的,比如今天是2002年12月19号,那当日就是2002年12月19号,当月是2002年12月,当年是指2002年。HHH字段中的ASD只可能有一条。DANGRI ,DANGYUE ,DANGNIAN 字段应该是BBB字段的合计数
on test1
for insert,update,delete
as
select eee,ccc,bbb
into #temp1
from inserted i,test2 t
where i.aaa=t.ddd
union all
select eee,ccc,bbb
from deleted d,test2 t
where d.aaa=t.dddselect eee,sum(bbb) as dangri
into #temp2
from #temp1
where convert(char(8),ccc,112)=convert(char(8),getdate(),112)update test3
set dangri=test3.dangri+t.dangri
from test3,#Temp2 t
where test3.hhh=t.eeeinsert test3(hhh,dangri,dangyue,dangnian)
select eee,dangri,0,0 from #Temp2 t
where not exists (
select * from test3 where where test3.hhh=t.eee)drop table #Temp2select eee,sum(bbb) as dangyue
into #temp3
from #temp1
where year(ccc)=year(getdate())
and month(ccc)=month(getdate())update test3
set dangyue=test3.dangyue+t.dangyue
from test3,#Temp3 t
where test3.hhh=t.eeeinsert test3(hhh,dangri,dangyue,dangnian)
select eee,0,dangyue,0 from #Temp3 t
where not exists (
select * from test3 where where test3.hhh=t.eee)drop table #Temp3select eee,sum(bbb) as dangnian
into #temp4
from #temp1
where year(ccc)=year(getdate())
update test3
set dangnian=test3.dangnian+t.dangnian
from test3,#Temp4 t
where test3.hhh=t.eeeinsert test3(hhh,dangri,dangyue,dangnian)
select eee,0,0,dangnian from #Temp4 t
where not exists (
select * from test3 where where test3.hhh=t.eee)drop table #Temp4go