重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
你需要知道在mysql数据库中是没有行,这一概念的。所以说,你让下一行减去上一行这个本身就是不成立的。处理的办法是把数据输出之后,用程序比如PHP。等等进行处理输出。单独用sql是无法实现的。
创新互联公司从2013年成立,是专业互联网技术服务公司,拥有项目网站设计、成都网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元桐梓做网站,已为上家服务,为桐梓各地企业和个人服务,联系电话:028-86922220
select 余额=存款-取款 from yourTable (这个只会显示,不会更新)
update yourTable set 余额 = (存款-取款)
更新a列,设置值为b列减10分钟:
UPDATE xxx SET a=DATE_SUB(b,INTERVAL 10 MINUTE)
加用DATE_ADD,单位有:YEAR 、MONTH 、DAY 、HOUR 、MINUTE 、SECOND ,保留INTERVAL 不变。
--这样是显示的结果是差值总的秒数
select sum(unix_timestamp(B)-unix_timestamp(A)) as 秒数
from tb
--这样是显示成 xxx:xx:xx 的形式
select sec_to_time(sum(unix_timestamp(B)-unix_timestamp(A))) as ti
from tb
--
表结构? 测试数据?
按哪一列排序?
测试数据.
CREATE TABLE temp (
year INT,
salary INT
);
INSERT INTO temp VALUES(2000, 1000);
INSERT INTO temp VALUES(2001, 2000);
INSERT INTO temp VALUES(2002, 3000);
INSERT INTO temp VALUES(2003, 4000);
预期要求结果:
year salary
2000 1000
2001 1000
2002 1000
2003 10000
SELECT
year,
salary - ISNULL((SELECT TOP 1 salary FROM temp t2 WHERE t2.year temp.year ORDER BY year DESC), 0) AS salary
FROM
temp;
go
year salary
----------- -----------
2000 1000
2001 1000
2002 1000
2003 1000
(4 行受影响)