当前位置:首页 > 技术心得 > 正文内容

SQL累减语句

xjtudll4年前 (2022-02-07)技术心得7820

https://bbs.csdn.net/topics/70362619

表一
Item Qty
A 10
A 12
A 14
B 13
B 60
C 30
C 40
C 10
表二
Item Qty
A 1000
B 70
C 100
表三
Item Qty Result
A 10 990 =(1000-10)
A 12 978 =(990-12)
A 14 964 =(978-14)
B 13 57 =(70-13)
B 60 -3 =(57-60)
C 30 70 =(100-30)
C 40 30 =(70-40)
C 10 20 =(30-10)

--示例
--示例数据
create table 表一(Item varchar(10),Qty int)
insert 表一 select 'A',10
union all select 'A',12
union all select 'A',14
union all select 'B',13
union all select 'B',60
union all select 'C',30
union all select 'C',40
union all select 'C',10
create table 表二(Item varchar(10),Qty int)
insert 表二 select 'A',1000
union all select 'B',70
union all select 'C',100
go
--查询
select id=identity(int),a.*,Result=b.Qty
into # from 表一 a,表二 b
where a.Item=b.Item
order by a.Item
declare @Item varchar(10),@s int
update # set
@s=case when @Item=Item then @s-Qty else Result-Qty end,
@Item=Item,Result=@s
select * from #
drop table #
go
--删除测试
drop table 表一,表二
/*--结果
Item Qty Result
---------- ----------- -----------
A 10 990
A 12 978
A 14 964
B 13 57
B 60 -3
C 30 70
C 40 30
C 10 20
(所影响的行数为 8 行)
--*/

--示例
--示例数据
create table 表一(Item varchar(10),Qty int)
insert 表一 select 'A',10
union all select 'A',12
union all select 'A',14
union all select 'B',13
union all select 'B',60
union all select 'C',30
union all select 'C',40
union all select 'C',10
create table 表二(Item varchar(10),Qty int)
insert 表二 select 'A',1000
union all select 'B',70
union all select 'C',100
go
--查询
select id=identity(int),* into # from 表一
select a.Item,a.Qty,Result=b.Qty-(select sum(Qty) from # where Item=a.Item and id<=a.id)
from # a,表二 b
where a.Item=b.Item
drop table #
go
--删除测试
drop table 表一,表二
/*--结果
Item Qty Result
---------- ----------- -----------
A 10 990
A 12 978
A 14 964
B 13 57
B 60 -3
C 30 70
C 40 30
C 10 20
(所影响的行数为 8 行)
--*/

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://xjtudll.cn/Exp/632/

标签: SQL
分享给朋友:

“SQL累减语句” 的相关文章

金蝶 在任务单序时簿直观查看关键件领用套数解决方案

金蝶 在任务单序时簿直观查看关键件领用套数解决方案

目前生产任务单序时簿无法很直观地查看领料套数,而标准报表《任务单领料明细表》需每一种物料都要领料才能统计出领料套数但大部分情况下,非关键件物料采用倒冲领料或者集中领料,以致于该报表无法使用。 备注:已领套数=生产任务单对应投料单的分录行的[已领数量/单位用量的最小值,但是不包括计划投料数量是0的投...

Win7 64bit安装usb blaster驱动

Win7 64bit安装usb blaster驱动

前面我就不讲了,直接到驱动搜索这一步。如下: 选择第二项“浏览计算机以查找驱动程序软件”; 关键步骤到了,很容易出错,导致无法安装成功 在下图中一定要将驱动程序位置设置为 “D:\altera\90\quartus\drivers\usb-blaster...

回历与公历换算

伊斯兰教历以希吉来为纪元,“希吉来”是阿拉伯语“迁移”一词的音译,系指公元622年9月24日穆罕默德率众由麦加迁往麦地那之事。为使公历纪年元旦与阿拉伯太阴历纪年(以月亮绕地球一周而又与太阳相会,为一个月)岁首相合,特定儒略历622年7月16日(公历62...

Qt打包发布程序

Qt打包发布程序

Qt发布程序有两种方式,静态编译和动态编译。静态编译操作繁琐,东拉西扯要N长时间,所以我选择的是动态发布,动态发布有个缺点,就是要附加多个dll文件,传输极为不便,如果能搞成单文件就比较爽了。 本文就是讲述如何将多个文件打包成一个exe文件。 当然,你首先要将Qt编译设置成Release模式,将Re...

Proteus7.10SP0安装&和谐包下载

dxswp 这位仁兄出手太快了,网上Proteus7.10安装包刚出来,ta就和谐了。NB人士。赞一个。 安装文件 http://115.com/file/be4tmeh4#  基于Nemo78  7.10 sp0 crack 修改。 中文系统可用,...

NSWindow——设定窗口位置

NSWindow——设定窗口位置

 1、记忆窗口的位置 何为记忆窗口位置 ,即下次打开窗口的位置跟上次退出时一样。 如果是用代码,请参考: 记忆窗口位置    http://cocoa.venj.me/blog/remember-window-position/ 在xib文件中设定,见图...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。