select
in1.id,
in1.amount -
if(in1.id in(select `inId` from out1), (select sum(out1.`amount`) from out1 where out1.inId=in1.id),0) +
if(in1.id in(select out1.`inId` from out1,back1 where out1.id=back1.outId),(select sum(back1.`amount`) from back1,out1 where out1.inId=in1.id and out1.id=back1.outId),0) -
if(in1.id in(select `inId` from transfer1),(select sum(transfer1.`amount`) from transfer1 where in1.id=transfer1.inId),0)-
if(in1.id in(select `inId` from return1), (select sum(return1.`amount`) from return1 where return1.inId=in1.id),0) as total
from in1
经过测试后结果为:
id, total
1.490
2.486
3.489
希望能对你有所帮助
mysql中有4类运算符,它们是:算术运算符
比较运算符
逻辑运算符
位 *** 作运算符
算术 *** 作符
算术 *** 作符是SQL中最基本的 *** 作运算符,主要有一下几种运算符:
+(加)、
-(减)、
*(乘)、
/(除)、
%(求余或者模)
比较运算符
一个比较运算符的结果总是1,0或者是NULL。MySQL中的比较运算符有:
=、<=>、<>
(!=)、<=、>=、>、IS
NULL、IS
NOT
NULL、LEAST、GREATEST、BETWEEN
.
.
.
AND.
.
.
、ISNULL、IN、NOT
IN、LIKE、REGEXP
逻辑运算符
逻辑运算符的求值所得结果均为TRUE、FALSE或NULL。
逻辑运算符有:
NOT
或者
!
AND
或者
&&
OR
或者
||
XOR(异或)
位运算符
位运算符是用来对二进制字节中的位进行测试、移位或者测试处理。位运算符有:
位或(|)
位与(&)
位异或(^
)
位左移(<<)
位右移(<<)
位取反(~)
1)SELECT ID,CASE WHEN A>B THEN A ELSE CASE WHEN B>C THEN B ELSE C END END FROM TABLE_NAME2)SEL ID,COUNT(ID) FROM TABLE_NAME WHERE ID IS NULL GROUP BY ID
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)