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

SQL累减语句

xjtudll5年前 (2022-02-07)技术心得8770

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累减语句” 的相关文章

用反相器和晶振做晶体振荡电路

用反相器和晶振做晶体振荡电路

采用下图所示电路可以实现方波时钟信号输出的功能: 电路分析: 时钟信号为CMOS电平输出,频率等于晶振的并联谐振频率。 (1) 74HC04在这里相当于一个有很大增益的放大器; (2) R2是反馈电阻,取值一般≥1MΩ,它可以使反相器在振荡初始时处于线性工作区,不可以省略,否则有...

密勒定理及密勒效应

密勒定理及密勒效应

1、密勒定理 如图1所示的二端口网络(two-port network)中,Vin为输入电压,Vout为输出电压,Zf为Vin与Vout之间的桥接阻抗,A为Vin与Vout之间的闭环增益(A>0,正相放大;A<0,反相放大),且A的输入阻抗为无穷大,输出阻抗为零,则图1电路与图2电...

NSString 字符串的合并

.wiz-todo, .wiz-todo-img {width: 16px; height: 16px; cursor: default; padding: 0 10px 0 2px; vertical-align: -10%;-webkit-user-select: none;} .wiz-t...

TVS主要技术参数

1、最小击穿电压VBR和击穿电流IR VBR:Reverse Break Down Voltage,反向击穿电压 IR:Reverse Current,击穿电流(有的datasheet上称为IT) VBR是TVS最小的击穿电压,在25℃时,低于这个电压TVS是不会产生雪崩的。当TVS流过规定的1mA...

浅析电波表——基本工作原理

浅析电波表——基本工作原理

一、电波表简介 电波钟表,也称为无线控制计时钟表 ( 英文名称为:Radio Controlled Timepieces)。电波钟是一种新兴的计时产品。目的是为了世界时间同步统一。主要是为了解决目前石英钟表的精确度问题。石英钟表较机械钟表已准确很多,但日差仍有一秒半秒。这种误差对于人们的日常生活没有...

常用电平标准

常用电平标准

现在常用的电平标准有TTL、CMOS、LVTTL、LVCMOS、ECL、PECL、LVPECL、RS232、RS485等,还有一些速度比较高的LVDS、GTL、PGTL、CML、HSTL、SSTL等。下面简单介绍一下各自的供电电源、电平标准以及使用注意事项。 1、TTL电平 TTL:Transi...

发表评论

访客

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