mysql 多表运算的问题

mysql 多表运算的问题,第1张

我用的MYsql 具体函数有一点点出入:而且你的表名建的太刺激了,都是in、out、return等关键字,我在表名上都添加了一个数字1,即 in1,out1,back1,return1,transfer1:

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

希望能对你有所帮助

用左外连接查询:

SELECT xm ,je1, je2 ,je3 ,je4 ,je5,je12

FROM 表 12

lEFT JOIN 表1 ON (表12.xm=表1.xm)

LEFT JOIN 表3 ON (表3.xm=表2.xm)

……

多表查询是指基于两个和两个以上的表或是视图的查询.在实际应用中,查询单个表可能不能满足你的需求,(如显示sales部门位置和其员工的姓名),这种情况下需要使用到(dept表和emp表)

自连接是指在同一张表的连接查询

select * from emp where empno=(select mgr from emp where ename='ford')

子查询是指嵌入在其它sql查询语句中的select语句,也叫嵌套查询

单行子查询是 指只返回一行数据的子查询语句

select * from emp where deptno=(select deptno from emp where ename='smith')

多行子查询指返回多行数据的子查询 使用关键字 in

如果我们的一个子查询,返回的 结果是多列,就叫做列子查询

合并多个select语句的结果,可以使用集合 *** 作符 union,union all


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7388997.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存