焦急等待,今晚揭帖。

DebugXP 2004-02-02 03:01:47
数据库:1
编号 数量
10001 50
10002 50
数据库:2
编号 数量
10001 20
10002 40

(相减)
显示时(程序中显示)
编号 数量
10001 30
10002 10

能不能用纯sql语句实现?
...全文
36 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
DebugXP 2004-02-02
  • 打赏
  • 举报
回复
特别感谢 1ssp(新来的)
可以提前结贴了。
smalldeer 2004-02-02
  • 打赏
  • 举报
回复
如果不存在一定要max减去min这样的条件,那应该怎么样处理,就是前一个减去后一个



1ssp 2004-02-02
  • 打赏
  • 举报
回复
create table minux
(id varchar(10),countnum int)
go

insert into minux values('10001',50)
insert into minux values('10002',50)
insert into minux values('10001',20)
insert into minux values('10002',40)
go
select id,countnum=max(countnum)-min(countnum)
from minux
group by id
go
drop table minux

id countnum
---------- -----------
10001 30
10002 10

(所影响的行数为 2 行)

smalldeer 2004-02-02
  • 打赏
  • 举报
回复
如果记录都在同一张表里
怎么样得到结果

create table minux
id varchar(10),
countnum int
)
go

insert into minux values('10001',50)
insert into minux values('10002',50)
insert into minux values('10001',20)
insert into minux values('10002',40)

大家写写看,我也在写中
licun8223 2004-02-02
  • 打赏
  • 举报
回复
select a.编号,(a.数量-b.数量) as 数量 from a,b where a.编号=b.编号
smalldeer 2004-02-02
  • 打赏
  • 举报
回复
create table A1(
id varchar(10),
countnum int
)
go

create table B1(
id varchar(10),
countnum int
)
go


insert into A1 values('10001',50)
insert into A1 values('10002',50)
insert into B1 values('10001',20)
insert into B1 values('10002',40)


select A1.id,A1.countnum-b1.countnum from B1,A1
where A1.id = B1.id
愉快的登山者 2004-02-02
  • 打赏
  • 举报
回复
select A.编号, A.数量 - B.数量 as 数量
from table1 as A left join table2 as B on A.编号 = B.编号
viptiger 2004-02-02
  • 打赏
  • 举报
回复
select 编号,
(select b.数量-A.数量 from db2.YouTable as B
where A.编号 = B.编号)
from YourTable as A
1ssp 2004-02-02
  • 打赏
  • 举报
回复
测试数据如下:
create table t1(编号 char(5),数量 int)
insert into t1 values('10001', 50)
insert into t1 values('10002', 50)
go
create table t2(编号 char(5),数量 int)
insert into t2 values('10001', 20)
insert into t2 values('10002', 40)
go
select a.编号,数量=sum(a.数量) from
(select 编号,数量 from t1 union all
select 编号,数量=-数量 from t2) a
group by a.编号
go
drop table t1
go
drop table t2

编号
----- -----------
10001 30
10002 10

(所影响的行数为 2 行)


愉快的登山者 2004-02-02
  • 打赏
  • 举报
回复
select A.编号, A.数量 - B.数量
from table1 as A left join table2 as B on A.编号 = B.编号
1ssp 2004-02-02
  • 打赏
  • 举报
回复
测试数据如下:
create table t1(编号 char(5),数量 int)
insert into t1 values('10001', 50)
insert into t1 values('10002', 50)
go
create table t2(编号 char(5),数量 int)
insert into t2 values('10001', 20)
insert into t2 values('10002', 40)
go
select a.编号,sum(a.数量) from
(select 编号,数量 from t1 union all
select 编号,数量=-数量 from t2) a
group by a.编号
go
drop table t1
go
drop table t2

编号
----- -----------
10001 30
10002 10

(所影响的行数为 2 行)


viptiger 2004-02-02
  • 打赏
  • 举报
回复
select 编号,
(select b.数量-A.数量 from db2.YouTable as B
where A.编号 = B.编号)
from YourTable as A
smalldeer 2004-02-02
  • 打赏
  • 举报
回复
数据库:1
数据库:2

是数据分别两个数据库中,还是两张表中,或是一张表里的
viptiger 2004-02-02
  • 打赏
  • 举报
回复
select 编号,(select b.数量-A.数量 from db2.YouTable as B)YourTable from YourTable as A
1ssp 2004-02-02
  • 打赏
  • 举报
回复
select a.编号,sum(a.数量) from
(select 编号,数量 from t1 union all
select 编号,数量=-数量 from t2) a
group by a.编号
victorycyz 2004-02-02
  • 打赏
  • 举报
回复
select a.编号,
(a.数量-(case when b.总数 is null then 0 else b.总数 end)) as 数量
from table1 a left join
( select 编号, sum(数量) as 总数
from table2
group by 编号)
) b
on a.编号=b.编号

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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