如题,delphi7+sqlserver2000,实验开始,20秒取一次设备的参数,形成表格temp,问题是,当试验完成后,我想从表temp中取每两分钟的一个记录到表data(目的是减少数据密度),该怎样实现?求代码?

解决方案 »

  1.   

    1、做个存储过程实现,关于这方面的内容,建议你找本书,看看关于sql编程的内容。
    2、使用DELPHI编程实现,首先连接到表temp,然后按照需求历遍数据表,复合条件时,插入表data。建议如下:仔细观察了你表的名字,不知道这是否是你的需求,你存入temp表的内容可能并不需要存入数据库,按照你设定的某个格式写到一个本地文件就可以了。然后对这个文件进行历遍,然后得到需要的内容后再存入数据库。
      

  2.   

    但是这个2分钟是不固定的,比如说我想随意按时长取数,有可能1分钟,2分钟,10分钟,等等,这样做就解决不了问题了,出发点是从temp中原始数据取数,该怎样实现?
      

  3.   

    能否代码一下?比如说实验开始时间2006-7-30 08:00:59,参数为 data1,data2,data3;
    实验结束时间2006-8-21 09:28:59,该怎样实现?
      

  4.   

    songyafeng(sanmo) ( ) 信誉:100  2006-08-01 14:44:00  得分: 0  
        代码?满意就给散分了汗.....上面的都白说了
      

  5.   

    加入你表中存在id项(取数的序号)
    insert data
    select * from temp
    where id in(
    select 1+(id-1)*6 from temp
    )
      

  6.   

    解释一下,
    上面的代码需要你两个表的结构完全相同,如果不同,那么select 的时候,不要select *,按照data表的列循序select。下面的
    where id in(
    select 1+(id-1)*6 from temp
    )
    意思为,只取序号在那个设定规则之中的数据。这里的规则是(1+(id-1)*6)
    这只是一种方法,根据具体需求,再改改吧。