[1]DILSTK
LSTK_LOC VARCHAR2(06),
LSTK_BK VARCHAR2(01),
LSTK_BY VARCHAR2(03),
LSTK_LV VARCHAR2(02),
LSTK_STAT VARCHAR2(01),
LSTK_ITEM VARCHAR2(20),
LSTK_STOK NUMBER,
LSTK_DATE VARCHAR2(08),
LSTK_TIME VARCHAR2(06),
[2]DIMAST
MAST_ITEM VARCHAR2(20),
MAST_NAME VARCHAR2(30),
MAST_SPEC VARCHAR2(30),
MAST_DATE VARCHAR2(08),
MAST_TIME VARCHAR2(06),
위의 2개의 schema파일을 가지고 하나의 폼을 만들려구 합니다
문제는 수량(LSTK_STOK)을 구하는 문제인데,
---------------------------------------------------------------------
LSTK_ITEM MAST_NAME MAST_SPEC LSTK_STOK
" " " "
" " " "
" " " "
" " " "
" " " "
" " " "
여기에서 (LSTK_ITEM,MAST_NAME,MAST_SPEC)들의 공통된 데이타의 수량(LSTK_STOK)합계를 구하는 문제인데 잘 안됩니다.
이 SQL문은 제가 위에 설명한데로 작성한 문장인데 무엇이 틀렸는지 알려주십시요...
select max(a.lstk_item), max(b.mast_name), max(b.mast_spec),
sum(a.lstk_stok)
from dilstk a, dimast b
where a.lstk_item = b.mast_item(+)
group by a.lstk_item, b.mast_name, b.mast_spec
정확히는 모르겠구요
제가 일때문에 테스트는 못하고 올리니
설령 결과가 나빠도 한번 사용해보세요.
만약 max를 사용한다면....이 방법이 되는지 장담못하지만요.
select a.lstk_item, b.mast_name, b.mast_spec,
sum(a.lstk_stok)
from dilstk a, dimast b
where a.lstk_item = b.mast_item(+)
and a.lstk_item = (select max(aa.lstk_item) from dilstk aa)
and b.mast_name = (select max(bb.mast_name) from dimast bb)
and b.mast_spec = (select max(cc.mast_spec) from dimast cc)
group by a.lstk_item, b.mast_name, b.mast_spec
-사족 : dimast가 마스터테이블같은데 굳이 그룹을 사용하는지 잘
이해가 안가구요, 만약 굳이 쓴다면 어떤 조건의 max인지를 잘 써야할 것 같아요
안그러면 출력자료가 1건으로 나타날 수 있지 않으까 합니다.
XXX wrote:
> [1]DILSTK
> LSTK_LOC VARCHAR2(06),
> LSTK_BK VARCHAR2(01),
> LSTK_BY VARCHAR2(03),
> LSTK_LV VARCHAR2(02),
> LSTK_STAT VARCHAR2(01),
> LSTK_ITEM VARCHAR2(20),
> LSTK_STOK NUMBER,
> LSTK_DATE VARCHAR2(08),
> LSTK_TIME VARCHAR2(06),
>
> [2]DIMAST
> MAST_ITEM VARCHAR2(20),
> MAST_NAME VARCHAR2(30),
> MAST_SPEC VARCHAR2(30),
> MAST_DATE VARCHAR2(08),
> MAST_TIME VARCHAR2(06),
>
> 위의 2개의 schema파일을 가지고 하나의 폼을 만들려구 합니다
> 문제는 수량(LSTK_STOK)을 구하는 문제인데,
> ---------------------------------------------------------------------
> LSTK_ITEM MAST_NAME MAST_SPEC LSTK_STOK
> " " " "
> " " " "
> " " " "
> " " " "
> " " " "
> " " " "
> 여기에서 (LSTK_ITEM,MAST_NAME,MAST_SPEC)들의 공통된 데이타의 수량(LSTK_STOK)합계를 구하는 문제인데 잘 안됩니다.
> 이 SQL문은 제가 위에 설명한데로 작성한 문장인데 무엇이 틀렸는지 알려주십시요...
>
> select max(a.lstk_item), max(b.mast_name), max(b.mast_spec),
> sum(a.lstk_stok)
> from dilstk a, dimast b
> where a.lstk_item = b.mast_item(+)
> group by a.lstk_item, b.mast_name, b.mast_spec
>
>