如何动态的统计一张表(table1)的数据到另一张表(table2),被统计的表是随时更新的,我用的是insert into table2()select count(cloum) from table1。但是这样有一个问题就是当我table1的表随着时间的增长后数据也变化了,这样我之前统计的数据在我的sql语句再一次执行后重复统计了,怎样来不重复统计之前统计过的数据?十万火急,,,,已经研究好几天了,但是因缺乏经验,一直无法解决!!特请高手指教。
insert into countArea (userID,clickDate,clickArea,areaCount,AreaID)
select UserID,convert(varchar(10),clickDate,120)as clickDate,AreaName,count(AreaID),areaID as CountMediaClass
from Z_click_list
group by UserID,convert(varchar(10),clickDate,120),AreaID,AreaName
//////
这是我的sql 语句,随着我的clickdate的变化,当insert into语句 自动执行后之前统计过的数据再一次被插入到countarea表里去了!
insert into countArea (userID,clickDate,clickArea,areaCount,AreaID)
select UserID,convert(varchar(10),clickDate,120)as clickDate,AreaName,count(AreaID),areaID as CountMediaClass
from Z_click_list
group by UserID,convert(varchar(10),clickDate,120),AreaID,AreaName
//////
这是我的sql 语句,随着我的clickdate的变化,当insert into语句 自动执行后之前统计过的数据再一次被插入到countarea表里去了!
1,将某次统计中table1的主健 取出放到一个批量统计的控制表中,标示统计的第几次,防止以后重复统计(当然了,此次主健选取肯定不应该在这个表内,在了就说明以前统计过了)
2,根据刚才那个表中第几次的主健范围再进行统计,就没有问题了,既不会保证统计重复,又不会出现统计不准确的问题,不知道lz明白我的意思不?
呵呵 我也是理想状况阿
把每次统计的id(主键)放到另一个表(T),下次统计时,T表存在的就不统计了。
select UserID,convert(varchar(10),clickDate,120)as clickDate,AreaName,count(AreaID),areaID as CountMediaClass
from Z_click_list
group by UserID,convert(varchar(10),clickDate,120),AreaID,AreaName从Z_click_list表里统计数据然后插入countArea。要是有以前统计过的就不再进行统计且不再写入表countarea。
select UserID,convert(varchar(10),clickDate,120)as clickDate,AreaName,count(AreaID),areaID as CountMediaClass
from Z_click_list
group by UserID,convert(varchar(10),clickDate,120),AreaID,AreaName
这根本没用到ID,能否有其他的方法,把每次统计的id(主键)放到另一个表(T)这样又多了一张表,可能更麻烦了。