sql 语句实现计算电量
2011-08-03 23:28
429 查看
create table tb(DD decimal(18,1),date_time datetime) insert into tb values(23.0 ,'2011-01-01') insert into tb values(45.0 ,'2011-01-02') insert into tb values(10.0 ,'2011-01-03') insert into tb values(35.0 ,'2011-01-04') go select t.* , 电递增加数 = dd - (select top 1 dd from tb where date_time < t.date_time order by date_time) from tb t drop table tb /* DD date_time 电递增加数 -------------------- ------------------------------------------------------ --------------------- 23.0 2011-01-01 00:00:00.000 NULL 45.0 2011-01-02 00:00:00.000 22.0 10.0 2011-01-03 00:00:00.000 -13.0 35.0 2011-01-04 00:00:00.000 12.0 (所影响的行数为 4 行) */
create table tb(DD decimal(18,1),date_time datetime) insert into tb values(23.0 ,'2011-01-01') insert into tb values(45.0 ,'2011-01-02') insert into tb values(10.0 ,'2011-01-03') insert into tb values(35.0 ,'2011-01-04') go select t.* , 电递增加数 = case when isnull(dd - (select top 1 dd from tb where date_time < t.date_time order by date_time),0) < 0 then 0 else isnull(dd - (select top 1 dd from tb where date_time < t.date_time order by date_time),0) end from tb t drop table tb /* DD date_time 电递增加数 -------------------- ------------------------------------------------------ --------------------- 23.0 2011-01-01 00:00:00.000 .0 45.0 2011-01-02 00:00:00.000 22.0 10.0 2011-01-03 00:00:00.000 .0 35.0 2011-01-04 00:00:00.000 12.0 (所影响的行数为 4 行) */
create table tb(DD decimal(18,1),date_time datetime) insert into tb values(23.0 ,'2011-01-01') insert into tb values(45.0 ,'2011-01-02') insert into tb values(10.0 ,'2011-01-03') insert into tb values(35.0 ,'2011-01-04') go select t.* , 电递增加数 = case when isnull(dd - (select top 1 dd from tb where date_time < t.date_time order by date_time),0) < 0 then dd else isnull(dd - (select top 1 dd from tb where date_time < t.date_time order by date_time),0) end from tb t drop table tb /* DD date_time 电递增加数 -------------------- ------------------------------------------------------ --------------------- 23.0 2011-01-01 00:00:00.000 .0 45.0 2011-01-02 00:00:00.000 22.0 10.0 2011-01-03 00:00:00.000 10.0 35.0 2011-01-04 00:00:00.000 12.0 (所影响的行数为 4 行) */
create table tb(DD decimal(18,1),date_time datetime) insert into tb values(23.0 ,'2011-01-01') insert into tb values(45.0 ,'2011-01-02') insert into tb values(10.0 ,'2011-01-03') insert into tb values(35.0 ,'2011-01-04') go select t.* , 电递增加数 = case when isnull(dd - (select top 1 dd from tb where date_time < t.date_time order by date_time desc),0) < 0 then dd else isnull(dd - (select top 1 dd from tb where date_time < t.date_time order by date_time desc),0) end from tb t drop table tb /* DD date_time 电递增加数 -------------------- ------------------------------------------------------ --------------------- 23.0 2011-01-01 00:00:00.000 .0 45.0 2011-01-02 00:00:00.000 22.0 10.0 2011-01-03 00:00:00.000 10.0 35.0 2011-01-04 00:00:00.000 25.0 (所影响的行数为 4 行) */
相关文章推荐
- Sql语句实现不同记录同一属性列的差值计算
- 实现内容的时间交集计算的sql语句
- mysql 下 计算 两点 经纬度 之间的距离 含具体sql语句以及伪列作为查询条件实现
- sql语句实现同一时间范围内并发数统计计算
- 通过经纬度计算距离,可以用来得到周边500米内的商家。mybatis中的Sql语句实现
- oracle:两条sql语句实现层次查询的反序权值计算与输出
- 实现内容的时间交集计算的sql语句
- 时间段连续判断,实现内容的时间交集计算的sql语句
- 求救!胜负比率计算问题?如何用SQL语句实现?(存储过程也可以)
- mysql实现经纬度计算两个坐标之间的距离sql语句
- SQL语句实现根据经纬度计算距离并排序分页
- 海量数据实现分页的sql语句
- 表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列
- Oracle建表SQL语句实现id自增
- 对sql的查询语句做成对象式,简单实现。Where部分
- 表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。
- SQL语句实现按关健字模糊查询,并按匹配度排序
- SQL语句实现模糊查询
- oracle 计算两个时间的分钟差 sql语句
- MySQL:一句SQL语句实现从第几条读多少条