个人理解关键点有两个:
1、不输入不写数据库 如何显示的问题
2、不输入写数据库 如何写的问题
关键点1中说的偏重于显示结果,但数据库中不存在,难点就是取时间差值,有两种方式:
a)SQL查询处理,同表联合查询(建议该方式)
select a. adddate-b. adddate as ddate,a.qw,q.mw,a.cc //ddate为前后时间差值
from 表 as a inner join 表 as b
on a. id = b. id - 1 //id 为该表自增主键
order by a.adddate
该查询输出结果:
qw mw cc adddate ddate
1 2 3 2011-9-13 0
1 2 3 2011-9-15 2
在实际输出时,对该记录的ddate进行判断,递增日期重复输出该记录。
b)循环输出记录时,计算时间差值
关键点2中是需要触发去写入数据库的,用户不输入的情况下,也是需要执行输入的过程,只是提交的时间不同而已,如果没有触发点,可以考虑如下处理方式:
a)用户进行下一次输入时,计算与上一条记录写入时间,填补中间空缺的记录
b)输出显示的时候,需要计算当前日期和数据库最后一条记录差值,并重复输出该记录值
按 adddate 排序就行了
select top 1 from 表名 order by adddate desc
每天只有一条记录吗