我用的MYsql 具體函數(shù)有一點(diǎn)點(diǎn)出入:而且你的表名建的太刺激了,都是in、out、return等關(guān)鍵字,我在表名上都添加了一個數(shù)字1,即 in1,out1,back1,return1,transfer1:
創(chuàng)新互聯(lián)建站是一家專業(yè)提供同江企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、成都做網(wǎng)站、H5網(wǎng)站設(shè)計、小程序制作等業(yè)務(wù)。10年已為同江眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。
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
經(jīng)過測試后結(jié)果為:
id, total
1. 490
2. 486
3. 489
希望能對你有所幫助
mysql的位函數(shù),就是將數(shù)字轉(zhuǎn)換成2進(jìn)制,各位求與。舉個例子2915 結(jié)果是13。29的二進(jìn)制是11101,15的二進(jìn)制是1111,位運(yùn)算 11101+01111------------ 0110101101的十進(jìn)制是13。在Oracle里面是BITAND(nExpression1, nExpression2) 參數(shù) nExpression1, nExpression2 指定按位進(jìn)行 AND 運(yùn)算的兩個數(shù)值。這個函數(shù)進(jìn)行位運(yùn)算,MySQL我沒怎么用,希望有幫助
insert into emp_test(id,user,gender,age,desc) values(2,'2','2',2,'2')
給個小tips:凡是INT型的,values中不用加單引號,凡是文本型的,都需要加單引號。
有三種方法實(shí)現(xiàn)連乘
一種是用乘法運(yùn)算符“*。假設(shè)數(shù)據(jù)在都在A列,從A1開始,則在B1單元格輸入"=A1“(不輸入引號),在B2單元格輸入=B1*A2”,然后從B2單元格往下拉復(fù)制公式計算;
二種是用product函數(shù)。假設(shè)數(shù)據(jù)所在區(qū)域同上,在B1單元格輸入=PRODUCT($A$1:A1),然后往下拉復(fù)制公式計算;
第三種方式是利用geomean函數(shù),假設(shè)數(shù)據(jù)所在區(qū)域同上,在B1單元格輸入 (GEOMEAN($A$1:A1))^(ROW())。
1.when test="start == null and limit == null";
2.WHERE T.sDARowNo BETWEEN 1 AND 100;
3./when;
4.otherwise;
5.WHERE T.sDARowNo BETWEEN (#{start}+1) AND (#{start}+#{limit});
6./otherwise。
MyBatis 可以使用簡單的 XML 或注解來配置和映射原生信息,將接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java對象)映射成數(shù)據(jù)庫中的記錄。
創(chuàng)建:delimiter//createproceduremy_add(INaint,INbint,OUTcint)beginifaisnullthenseta=0;endif;ifbisnullthensetb=0;endif;setc=a+b;end;//delimiter;查看:方法一:(直接查詢,比較實(shí)用,查看當(dāng)前自定義的存儲過程)select`specific_name`frommysql.procwhere`db`='your_db_name'and`type`='procedure'方法二:(查看數(shù)據(jù)庫里所有存儲過程+內(nèi)容)showprocedurestatus;方法三:(查看當(dāng)前數(shù)據(jù)庫里存儲過程列表)selectspecific_namefrommysql.proc;方法四:(查看某一個存儲過程的具體內(nèi)容)selectbodyfrommysql.procwherespecific_name='your_proc_name';查看存儲過程或函數(shù)的創(chuàng)建代碼:showcreateprocedureyour_proc_name;showcreatefunctionyour_func_name;調(diào)用:mysqlset@a=10;QueryOK,0rowsaffected(0.00sec)mysqlset@b=20;QueryOK,0rowsaffected(0.00sec)mysqlset@c=0;QueryOK,0rowsaffected(0.00sec)mysqlselect@c;+------+|@c|+------+|0|+------+mysqlcallmy_add(@a,@b,@c);QueryOK,0rowsaffected(0.00sec)mysqlselect@a,@b,@c;+------+------+------+|@a|@b|@c|+------+------+------+|10|20|30|+------+------+------+1rowinset(0.00sec)刪除dropprocedureyour_proc_name;