日期:2014-05-18  浏览次数:20782 次

想了好几天了!请大家帮忙出个主意
数据库中有连续的每1分钟一条的数据,但又可能因为通信等原因丢失一段或几段数据。
我现在要将每天的数据查出来插入另外一个数据库的表中,对于丢失的数据,插入时间,数据量计为-10。

想了几天,就想出2笨办法
1:从00:00开始到23:59结束,循环的给时间加一分钟就到数据库中查一次,看数据是否存在
2:一次把一天的数据都查出来,保存到一个datatable中,再从datatable循环每一分钟的数据,看是否存在。。。。

这2个办法感觉都挺笨的,不过几天了,实在也想不出什么好办法。只好上来请大家帮帮忙,看有什么好点的办法 谢谢了

------解决方案--------------------
....
用实际的记录UPDATE这个表,条件是时间相等。
....

实际的记录何来?还是要select * from 原表 where time=.....

跟楼主方法1 差不多 只不过 结果表楼主是insert 你是 update

------解决方案--------------------
先在你要插入的表中创建一天所有分钟的纪录,default value=-10 
- store procedure loop

然后用inner join 更新




------解决方案--------------------
建议修改结构,,,先建立一个临时表,,,预先插入每分钟一条记录 数据更新的时候用update,而非insert,,,也许能解决你的问题
------解决方案--------------------
一般的来说,想加快速度,处理越接近数据库处理越好。如果还慢。可以传入最近几次的数据。然后,由触发器来比较,验证。
例如:传入最近的2次,需要添加的一次,然后由sql自己进行比较,那项缺少,然后补上去。