-----------------------------------------------------------------------------
select tab1.A,nvl(tab1.B,0) - nvl(tab2.C,0) + nvl(tab3.D,0),tab1.E,tab1.F,tab1.G from
jbb tab1,
(select A ,nvl(sum(C),0) as C from ckb group by A) tab2,
(select A ,nvl(sum(D),0) as D from rkb group by A) tab3
where tab1.A=tab2.A(+) and tab1.A = tab3.A(+);
如果是SQL SERVER
SELECT A.F_ID,A.F_NUM + ISNULL(B.F_NUM,0) - ISNULL(C.F_NUM,0) AS F_NUM,A.F_NAME,B.F_A,C.F_B
FROM TB_GOODS A
LEFT JOIN (SELECT TB_STORAGEIN.F_ID as F_ID,SUM(TB_STORAGEIN.F_NUM) as F_NUM,TB_STORAGEIN.F_A as F_A
FROM TB_STORAGEIN
GROUP BY TB_STORAGEIN.F_ID,TB_STORAGEIN.F_A) as B
ON A.F_ID = B.F_ID
LEFT JOIN TB_STORAGEOUT C
ON A.F_ID = C.F_ID
INSERT INTO TB_GOODS(F_ID,F_NUM,F_Name)
VALUES('01',3,'货物1')
INSERT INTO TB_GOODS(F_ID,F_NUM,F_Name)
VALUES('02',4,'货物2')
INSERT INTO TB_GOODS(F_ID,F_NUM,F_Name)
VALUES('03',5,'货物3')
INSERT INTO TB_STORAGEIN(F_ID,F_NUM,F_A)
VALUES('01',2,'A')
INSERT INTO TB_STORAGEIN(F_ID,F_NUM,F_A)
VALUES('02',1,'C')
INSERT INTO TB_STORAGEOUT(F_ID,F_NUM,F_B)
VALUES('02',5,'E')
INSERT INTO TB_STORAGEOUT(F_ID,F_NUM,F_B)
VALUES('03',2,'F')
SELECT A.F_ID,A.F_NUM + ISNULL(B.F_NUM,0) - ISNULL(C.F_NUM,0) AS F_NUM,A.F_NAME,B.F_A,C.F_B
FROM TB_GOODS A
LEFT JOIN TB_STORAGEIN B
ON A.F_ID = B.F_ID
LEFT JOIN TB_STORAGEOUT C
ON A.F_ID = C.F_ID