同一数据库中有两个表A和B,表A有一个字段t1中有10个数字,表B中字段t2有5个数据,查询语句实现数据相加减

时间:2021-04-20 15:06:18
同一数据库中有两个表A和B,表A有一个字段t1中有10个数字,表B中字段t2有5个数据,现想建一个(t1的10个数据求和),再减去(t2的5个数据的和)的查询,其中表A和B无关联字段,请问这样的查询怎样写?
放了几天假,忘得差不多啦,sum(),minus()被同学这个简单的问题问得无法立即给出答案。。。

14 个解决方案

#1


select ((select sum(t1) from a)-(select sum(t2) from b)) minusValue from dual

#2


select ((select sum(t1) from a)-(select sum(t2) from b)) minusValue from dual

#3


若没有关联的字段,楼上的也可以!

select sum(t1) vv from a
minus
select sum(t2) vv from b;

#4


引用 3 楼 qq646748739 的回复:
若没有关联的字段,楼上的也可以!
SQL code

select sum(t1) vv from a
minus
select sum(t2) vv from b;

关联的只能用3L的方法吗

#5


select ((select sum(t1) from a)-(select sum(t2) from b)) minusValue from dual

3L的不是数据相减,而是记录相减

#6


引用 5 楼 phoenix_99 的回复:
SQL code
select ((select sum(t1) from a)-(select sum(t2) from b)) minusValue from dual

3L的不是数据相减,而是记录相减

这样不行吗?反正SUM得出的也是数据,然后MINUS

#7


引用楼主 scauscnu 的回复:
同一数据库中有两个表A和B,表A有一个字段t1中有10个数字,表B中字段t2有5个数据,现想建一个(t1的10个数据求和),再减去(t2的5个数据的和)的查询,其中表A和B无关联字段,请问这样的查询怎样写?
放了几天假,忘得差不多啦,sum(),minus()被同学这个简单的问题问得无法立即给出答案。。。

select (select sum(t1) from a)-(select sum(t2) from b) from dual

#8


引用 4 楼 scauscnu 的回复:
引用 3 楼 qq646748739 的回复:

若没有关联的字段,楼上的也可以!
SQL code

select sum(t1) vv from a
minus
select sum(t2) vv from b;

关联的只能用3L的方法吗

3l肯定是错的  他的是数据的差集 不是想减

#9


引用 8 楼 wkc168 的回复:
引用 4 楼 scauscnu 的回复:
引用 3 楼 qq646748739 的回复:

若没有关联的字段,楼上的也可以!
SQL code

select sum(t1) vv from a
minus
select sum(t2) vv from b;

关联的只能用3L的方法吗

3l肯定是错的  他的是数据的差集 不是想减

反正求出的都是正数,不一样吗

#10


引用 9 楼 scauscnu 的回复:
引用 8 楼 wkc168 的回复:

引用 4 楼 scauscnu 的回复:
引用 3 楼 qq646748739 的回复:

若没有关联的字段,楼上的也可以!
SQL code

select sum(t1) vv from a
minus
select sum(t2) vv from b;

关联的只能用3L的方法吗

3l肯定是错的 他的是数据的差集 不是想减……

sum 是聚合函数求和的 
minus 是针对集合的 如 A={0,1,2,3}  B={1,2,4}  A-B=(0,3)   B-A=(4)

#11


引用 10 楼 wkc168 的回复:
引用 9 楼 scauscnu 的回复:
引用 8 楼 wkc168 的回复:

引用 4 楼 scauscnu 的回复:
引用 3 楼 qq646748739 的回复:

若没有关联的字段,楼上的也可以!
SQL code

select sum(t1) vv from a
minus
select sum(t2) vv from b;

关联的只能用3L的方法吗

……

差集就是数学的集合中的差集意思一样的

#12


select ((select sum(t1) from a)-(select sum(t2) from b)) minusValue from dual

#13


引用 10 楼 wkc168 的回复:
引用 9 楼 scauscnu 的回复:
引用 8 楼 wkc168 的回复:

引用 4 楼 scauscnu 的回复:
引用 3 楼 qq646748739 的回复:

若没有关联的字段,楼上的也可以!
SQL code

select sum(t1) vv from a
minus
select sum(t2) vv from b;

关联的只能用3L的方法吗

……

哦哦,谢谢

#14


select sum(t1) from
(select t1 from table1
union all
select -t2 t1 from table2)

#1


select ((select sum(t1) from a)-(select sum(t2) from b)) minusValue from dual

#2


select ((select sum(t1) from a)-(select sum(t2) from b)) minusValue from dual

#3


若没有关联的字段,楼上的也可以!

select sum(t1) vv from a
minus
select sum(t2) vv from b;

#4


引用 3 楼 qq646748739 的回复:
若没有关联的字段,楼上的也可以!
SQL code

select sum(t1) vv from a
minus
select sum(t2) vv from b;

关联的只能用3L的方法吗

#5


select ((select sum(t1) from a)-(select sum(t2) from b)) minusValue from dual

3L的不是数据相减,而是记录相减

#6


引用 5 楼 phoenix_99 的回复:
SQL code
select ((select sum(t1) from a)-(select sum(t2) from b)) minusValue from dual

3L的不是数据相减,而是记录相减

这样不行吗?反正SUM得出的也是数据,然后MINUS

#7


引用楼主 scauscnu 的回复:
同一数据库中有两个表A和B,表A有一个字段t1中有10个数字,表B中字段t2有5个数据,现想建一个(t1的10个数据求和),再减去(t2的5个数据的和)的查询,其中表A和B无关联字段,请问这样的查询怎样写?
放了几天假,忘得差不多啦,sum(),minus()被同学这个简单的问题问得无法立即给出答案。。。

select (select sum(t1) from a)-(select sum(t2) from b) from dual

#8


引用 4 楼 scauscnu 的回复:
引用 3 楼 qq646748739 的回复:

若没有关联的字段,楼上的也可以!
SQL code

select sum(t1) vv from a
minus
select sum(t2) vv from b;

关联的只能用3L的方法吗

3l肯定是错的  他的是数据的差集 不是想减

#9


引用 8 楼 wkc168 的回复:
引用 4 楼 scauscnu 的回复:
引用 3 楼 qq646748739 的回复:

若没有关联的字段,楼上的也可以!
SQL code

select sum(t1) vv from a
minus
select sum(t2) vv from b;

关联的只能用3L的方法吗

3l肯定是错的  他的是数据的差集 不是想减

反正求出的都是正数,不一样吗

#10


引用 9 楼 scauscnu 的回复:
引用 8 楼 wkc168 的回复:

引用 4 楼 scauscnu 的回复:
引用 3 楼 qq646748739 的回复:

若没有关联的字段,楼上的也可以!
SQL code

select sum(t1) vv from a
minus
select sum(t2) vv from b;

关联的只能用3L的方法吗

3l肯定是错的 他的是数据的差集 不是想减……

sum 是聚合函数求和的 
minus 是针对集合的 如 A={0,1,2,3}  B={1,2,4}  A-B=(0,3)   B-A=(4)

#11


引用 10 楼 wkc168 的回复:
引用 9 楼 scauscnu 的回复:
引用 8 楼 wkc168 的回复:

引用 4 楼 scauscnu 的回复:
引用 3 楼 qq646748739 的回复:

若没有关联的字段,楼上的也可以!
SQL code

select sum(t1) vv from a
minus
select sum(t2) vv from b;

关联的只能用3L的方法吗

……

差集就是数学的集合中的差集意思一样的

#12


select ((select sum(t1) from a)-(select sum(t2) from b)) minusValue from dual

#13


引用 10 楼 wkc168 的回复:
引用 9 楼 scauscnu 的回复:
引用 8 楼 wkc168 的回复:

引用 4 楼 scauscnu 的回复:
引用 3 楼 qq646748739 的回复:

若没有关联的字段,楼上的也可以!
SQL code

select sum(t1) vv from a
minus
select sum(t2) vv from b;

关联的只能用3L的方法吗

……

哦哦,谢谢

#14


select sum(t1) from
(select t1 from table1
union all
select -t2 t1 from table2)