如何解决日累计的问题,我在这边等哟!

隽安 2005-06-13 09:39:27
吾想实现的功能如下:

数据及需要实现的累计值--即每次“发货数量”与上次发货的“累计”值相加后再放入一张表中体现出来

表A
_______________________________________
| ID 提单号 提货日期 实发数量 累计|
|--------------------------------------|
| 1 0007 2005-01-1 80.3 80.3|
| 2 0007 2005-01-1 20.2 100.5|  /* 80.3+20.2=100.5
| 3 0008 2005-01-6 10.5 111| /* 100.5+10.5=111
---------------------------------------+
请各位帮我,急,在线等!
...全文
149 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
点点星灯 2005-06-13
  • 打赏
  • 举报
回复

declare @tab table (ID int,单号 varchar(20),提货日期 datetime,实发数量 decimal(8,1))
insert @tab
values(1,'0007','2005-01-01',80.3)
insert @tab
values(2,'0007','2005-01-01',20.2)
insert @tab
values(3,'0008','2005-01-06',10.5)
select * from @tab
/*
declare @num decimal(8,1)
set @num=0
select *,num=@num+convert(decimal(8,1),实发数量) from @tab
*/

declare @tab1 table (ID int,单号 varchar(20),提货日期 datetime,实发数量 decimal(8,1),累计 decimal(8,1))

declare @ID int
declare @单号 varchar(20)
declare @提货日期 datetime
declare @实发数量 decimal(8,1)
declare @累计 decimal(8,1)
set @累计=0
declare Num_Cursor CURSOR FOR
select * from @tab
open Num_Cursor
fetch next from Num_Cursor into @ID,@单号,@提货日期,@实发数量
while @@FETCH_STATUS=0
begin
set @累计=@累计+@实发数量
insert @tab1
values(@ID,@单号,@提货日期,@实发数量,@累计)
fetch next from Num_Cursor into @ID,@单号,@提货日期,@实发数量
end
close Num_Cursor
deallocate Num_Cursor


select * from @tab1

--有一种很简单的,不用游标的方法,忘记了.
--对不起了.
zhangzs8896 2005-06-13
  • 打赏
  • 举报
回复
同意楼上。
631799 2005-06-13
  • 打赏
  • 举报
回复
select *,累计=(select sum(实发数量) from tb where id<=a.id)
from tb a
隽安 2005-06-13
  • 打赏
  • 举报
回复
感谢各位,问题已经解决,辛苦楼上的,接分!!

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧