항상 이 곳에서 도움을 받고 있는데 대해 감사드립니다.
아래와 같은 문장은, 먼저 양 테이블에 조인을 한 후 이를 group
by하도록 되어 있는데,
이것을, mv_stock_lot 에 먼저 group by를 한 후 it_stock과 join을
하려고 합니다.
어떻게 하는게 가장 효율적일 지 도움 부탁드립니다.
참고로, mv_stock_lot은 테이블 6개 정도를 union한 view이기 때문에
효율성이 중요합니다.
SELECT v_itemcd, v_whcd, v_lot, v_len1, v_len2,
sum(IsNull(sto_totqty,0)), sum(IsNull(v_stockqty,0)) AS
end_stock
FROM mv_stock_lot FULL OUTER JOIN it_stock ON v_itemcd =
sto_itemcd
AND v_whcd = sto_whcd
AND v_lot = sto_lot
AND v_len1 = sto_len1
AND v_len2 = sto_len2
, mt_item
WHERE v_itemcd = itm_itemcd
GROUP BY v_itemcd, v_whcd, v_lot, v_len1, v_len2;
그리고, Full Outer Join을 써야하는 상황인데, 위 문장에서,
mt_item과의 join을 빼면 FULL join이 안되는데 이유가 뭘까요?
감사합니다. (__)
=====================
아래와 같이 하면 될 것 같은데, 문제는 FULL outer join이네요..
LEFT와 RIGHT를 union하는 수 밖에 없을가요? (참 Sybase ASA 7.0.4
사용중입니다.)
SELECT v_itemcd, v_whcd, v_lot, v_len1, v_len2,
sum(isnull(v_sumqty,0)), sum(isnull(sto_totqty,0)),
FROM
(SELECT v_itemcd, v_whcd, v_lot, v_len1, v_len2,
sum(IsNull(v_stockqty,0)) v_sumqty
FROM mv_stock_lot
GROUP BY v_itemcd, v_whcd, v_lot, v_len1, v_len2) AS temp
FULL OUTER JOIN it_stock ON v_itemcd = sto_itemcd
AND v_whcd = sto_whcd
AND v_lot = sto_lot
AND v_len1 = sto_len1
AND v_len2 = sto_len2
GROUP BY v_itemcd, v_whcd, v_lot, v_len1, v_len2;
|