求助,关于SQL语句如何读取上条记录与下条记录进行操作 select *,期末余额=(select sum(本期应收-本期应付) from 表 where 客户代码=a.客户代码 and 单据日期<=a.单据日期)from 表 a 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 --测试--测试数据create table 表(客户代码 varchar(10),客户名称 varchar(10),单据日期 datetime,本期应收 int,本期应付 int)insert 表 select '01','北京','2004-1-1',1000,0union all select '01','北京','2004-2-1',100 ,0union all select '01','北京','2004-3-1',0 ,200union all select '01','北京','2004-4-1',500 ,200union all select '01','北京','2004-5-1',500 ,0union all select '02','上海','2004-1-1',0 ,2000union all select '02','上海','2004-2-1',100 ,0union all select '02','上海','2004-3-1',0 ,200union all select '02','上海','2004-4-1',500 ,200union all select '02','上海','2004-5-1',500 ,0go--查询select *,期末余额=(select sum(本期应收-本期应付) from 表 where 客户代码=a.客户代码 and 单据日期<=a.单据日期)from 表 ago--删除测试drop table 表/*--测试结果客户代码 客户名称 单据日期 本期应收 本期应付 期末余额 ---------- ------ ------------------------- --------- ----------- -------- 01 北京 2004-01-01 00:00:00.000 1000 0 100001 北京 2004-02-01 00:00:00.000 100 0 110001 北京 2004-03-01 00:00:00.000 0 200 90001 北京 2004-04-01 00:00:00.000 500 200 120001 北京 2004-05-01 00:00:00.000 500 0 170002 上海 2004-01-01 00:00:00.000 0 2000 -200002 上海 2004-02-01 00:00:00.000 100 0 -190002 上海 2004-03-01 00:00:00.000 0 200 -210002 上海 2004-04-01 00:00:00.000 500 200 -180002 上海 2004-05-01 00:00:00.000 500 0 -1300(所影响的行数为 10 行)--*/ 多谢zjcxc(邹建)大哥这边我想补充问一下,如果没有那个'单据日期'字段还有办法吗? zjcxc(邹建)大哥where r u SQL,游标取数据。 在关键字 'as' 附近有语法错误 SQL2000中如何把写好的程修改为存诸过程? 请教一个SQL语句如何来写 多表关联触发器怎么写?? 在线等简单SQL语句?? 请问如何方便的将分区表中某一个或几个分区的数据导入新机器上的同名库??? 如何获取记录插入顺序?sqlserver有表记录插入时间的记录吗? 请教一个关于ntext 局部变量的问题 怎么select 自定义函数会返回两条记录的? 存储过程疑问,请大家帮一下忙。 不相信没人能做出来,共80分求解,函数
create table 表(客户代码 varchar(10),客户名称 varchar(10),单据日期 datetime,本期应收 int,本期应付 int)
insert 表 select '01','北京','2004-1-1',1000,0
union all select '01','北京','2004-2-1',100 ,0
union all select '01','北京','2004-3-1',0 ,200
union all select '01','北京','2004-4-1',500 ,200
union all select '01','北京','2004-5-1',500 ,0
union all select '02','上海','2004-1-1',0 ,2000
union all select '02','上海','2004-2-1',100 ,0
union all select '02','上海','2004-3-1',0 ,200
union all select '02','上海','2004-4-1',500 ,200
union all select '02','上海','2004-5-1',500 ,0
go--查询
select *,期末余额=(select sum(本期应收-本期应付) from 表 where 客户代码=a.客户代码 and 单据日期<=a.单据日期)
from 表 a
go--删除测试
drop table 表/*--测试结果客户代码 客户名称 单据日期 本期应收 本期应付 期末余额
---------- ------ ------------------------- --------- ----------- --------
01 北京 2004-01-01 00:00:00.000 1000 0 1000
01 北京 2004-02-01 00:00:00.000 100 0 1100
01 北京 2004-03-01 00:00:00.000 0 200 900
01 北京 2004-04-01 00:00:00.000 500 200 1200
01 北京 2004-05-01 00:00:00.000 500 0 1700
02 上海 2004-01-01 00:00:00.000 0 2000 -2000
02 上海 2004-02-01 00:00:00.000 100 0 -1900
02 上海 2004-03-01 00:00:00.000 0 200 -2100
02 上海 2004-04-01 00:00:00.000 500 200 -1800
02 上海 2004-05-01 00:00:00.000 500 0 -1300(所影响的行数为 10 行)
--*/
这边我想补充问一下,如果没有那个'单据日期'字段
还有办法吗?
where r u