分享
 
 
 

数据统计例子,相关子查询!(SQL 中循环操作一列数据方法)

王朝mssql·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

问题:

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

表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

---------------------------------------+

解决方案1:

==数据装载

declare @Table table (id int identity(1,1),提货号 varchar(4),提货日期 datetime,实发数量 float)

insert @table select '0007','2005-01-1',80.3

union all select '0007','2005-01-1',20.2

union all select '0008','2005-01-6',10.5

==测试

select *,累计=(select sum(实发数量) from @Table where id<=a.id)

from @Table a

==结果

==结果

1 0007 2005-01-01 00:00:00.000 80.299999999999997 80.299999999999997

2 0007 2005-01-01 00:00:00.000 20.199999999999999 100.5

3 0008 2005-01-06 00:00:00.000 10.5 111.0

==解决方案2: 游标

==数据装载

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)

==测试

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

==结果

1 0007 2005-01-01 00:00:00.000 80.299999999999997 80.299999999999997

2 0007 2005-01-01 00:00:00.000 20.199999999999999 100.5

3 0008 2005-01-06 00:00:00.000 10.5 111.0

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有