如下2帐表
A表 B表 关联字段
1 3 type(的值有‘0’,‘1’) 按他们进行比对
2 4
3 5
想要的效果
3 3 0
1 0 1
2 0 2
0 4 -4
0 5 -5
也就是说比对2张表的时候,如果type一样,那么就直接用A表的数据去减B表的数据,
如果type不一样,用A表存在B表不存在的数据直接与0 相减
同理A表不存在B表存在的数据也与0 相减
A表 B表 关联字段
1 3 type(的值有‘0’,‘1’) 按他们进行比对
2 4
3 5
想要的效果
3 3 0
1 0 1
2 0 2
0 4 -4
0 5 -5
也就是说比对2张表的时候,如果type一样,那么就直接用A表的数据去减B表的数据,
如果type不一样,用A表存在B表不存在的数据直接与0 相减
同理A表不存在B表存在的数据也与0 相减
from a full outer join b
on a.type=b.type
from a full outer join b
on a.type=b.type and a.num=b.num
SELECT J.OID,
DECODE(J.CCFTYPE,'E','0','I','1')CCFTYPE,
J.IMG_NO,
J.CCF_QTY,
SUM(NVL(Q.LIST_QTY,0)) BILL_QTY,
(J.CCF_QTY-SUM(NVL(Q.LIST_QTY,0))) DIFF_QTY,
'xiaxin'
FROM
(SELECT H.OID,
decode(H.CCFTYPE,'0','E','1','I') CCFTYPE,
L.IMG_NO,
SUM(NVL(L.G_QTY,0)) CCF_QTY
FROM GW_DEPPRC_HEAD H,
GW_DEPPRC_LIST L
WHERE L.HEAD_GUID=H.OID(+)
AND H.EMS_NO='xiaxin'
GROUP BY H.EMS_NO,H.CCFTYPE,L.IMG_NO,H.OID
)J FULL OUTER JOIN
(SELECT BILL.OID,
BILL.HEAD_I_E_MARK,
BILL.LIST_COP_G_NO,
BILL.LIST_QTY
FROM gw_view_customs_bill_cur BILL
WHERE BILL.HEAD_EMS_NO='E00000000001'
AND BILL.HEAD_TRADE_MODE IN('0255','0654')
)Q
ON (J.IMG_NO=Q.LIST_COP_G_NO AND J.CCFTYPE=Q.HEAD_I_E_MARK )
GROUP BY J.OID,J.CCFTYPE,J.IMG_NO,J.CCF_QTY;