日期:2014-05-17  浏览次数:20506 次

怎样从表中以每小时为单位筛选出一个数据
现有电量采集软件自动生成的数据表格,表中无ID列,MeterID为电表名对应的ID,现在想以每小时为单位从ReadNumber列中抽出一个值用来计算每小时的耗电量,表中每小时存储4个值且存储的时间不确定(由GPRs设备采集网络延时等原因 时间不准确),ReadDate列为varchar,因为数据是软件自动存储 所以无法改变
最好是能将数据取出来做成这样一个表格()日期和时分秒分开

MeterID 日期 时间(小时) ReadDate 

现在的表结构

我现在是用临时表在sql中能取出数据但是因为数据存储时间不确定 取出的数据不准确 最好是能用视图做出结果 这样在。net中也好用


SELECT TOP 25 id=IDENTITY(int, 1, 1),* INTO #tmp FROM ReadNow WHERE MeterID = 8
AND ReadDate LIKE'%:01:%' ORDER BY ReadDate DESC

SELECT ReadNumber=(Isnull(ReadNumber - (SELECT TOP 1 ReadNumber
  FROM #tmp
  WHERE id = A.id + 1
  ORDER BY id DESC), 0))*30
FROM #tmp AS A; 

现在是这样写的

求解决...

------解决方案--------------------
临时表断开连接就消失了 至于你的这个问题 正在想 \(^o^)/~