table A
名称 数量
a 3
a 4
b 9
b 4
c 5table B
名称 数量
a 7
b 6
b 9
d 4
e 2如何计算用table A数量减去table B并去掉0的结果,如下显示
名称 A数量 B数量 A-B
b 13 15 -2
c 5 0 5
d 0 4 -4
e 0 2 -2
名称 数量
a 3
a 4
b 9
b 4
c 5table B
名称 数量
a 7
b 6
b 9
d 4
e 2如何计算用table A数量减去table B并去掉0的结果,如下显示
名称 A数量 B数量 A-B
b 13 15 -2
c 5 0 5
d 0 4 -4
e 0 2 -2
解决方案 »
- 去重问题, 如何筛选出1小时内的重复数据
- 存储过程-- DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' SET @x2 = 1; 这个 set @x2=1 做什么用的
- mysql 有没有对结果集处理的能力
- [急!]如何将Select取出来的数据, 可以被当做一个新的表,可以再被多次select
- 如何处理用户中断访问网页的情况?
- redhat9上安装postgresql 时出错。 使用./confiuge --with-python时出错!(没找到解决办法!)
- mySql中在哪写SQL语句啊
- 可以根据数据库的规模算出增加索引之后查询效率的提升幅度么?
- mysql不能用localhost和127.0.0.1连接
- 多线程和单线程写入数据性能问题?
- 同一数据表中不同用户的图片信息分页怎么实现?
- 这个还可以优化吗
sum(if(bz='b',数量,0)) as A数量 ,
sum(if(bz='a',数量,-1*数量)) as `A-B`
from (
select *,'a' as bz from a
union all
select *,'b' as bz from b
) tt group by 名称
from (xxxxxxx)
where A<>0 or B <>0
sum(if(bz='b',数量,0)) as A数量 ,
sum(if(bz='a',数量,-1*数量)) as `A-B`
from (
select *,'a' as bz from a
union all
select *,'b' as bz from b
) tt group by 名称 HAVING sum(if(bz='a',数量,-1*数量))>0
sum(if(bz='b',数量,0) as A数量,
sum(IF(bz='a',数量,-1*数量) as `A-B`
FROM(
select *,'a' as bz from a
union all
select *,'b' as bz from b
)t
group by 名称
having sum(if(bz='a',数量,-1*数量))>0
select 名称,数量 as A数量, 0 as B数量 from a
union all
select 名称,0 as A数量, 数量 as B数量 from b
) t
group by 名称
having sum(A数量)<>sum(B数量)