Q&A

  • 쿼리 표현을 어찌해야 할까요?
3개의 테이블이 있습니다.
(입고,출고,반품)
월별 품목별 재고현황을 알고 싶은데요
디비 그리드에 표현은

12월

품목     입고    출고  반품  현재고
-------------------------------
A         10         5     4        1  
B         20         10   4         6  
.           .           .    .          .  
이런 식으로 나와야 하는데요....
A품목의 입고TOTAL, 출고TOTAL.반품TOTAL 이렇게 나와야 합니다.
아래 쿼리로 표현하면 중복된 데이타가 나와서 안되네요..
        




select A.*,B.*,C.*,D."ITEM_CODE",D."ITEM_NAME"
from "PUT01" A, "PUT02" B, "PUT03" C, "ITEM" D
where A."ITEM_CODE" = B."ITEM_CODE"
AND B."ITEM_CODE"=C."ITEM_CODE"
AND   c."ITEM_CODE"=D."ITEM_CODE"


5  COMMENTS
  • Profile
    최은석 2002.12.24 09:23
    PUT01 입고, PUT02 출고, PUT03 반품,  ITEM 아이템 테이블.....
    PUT01,PUT02,PUT03 테이블은 월(MON),품목코드(ITEM_CODE),수량(AMOUNT) 으로 구성되어있고
    ITEM 테이블은 품목코드(ITEM_CODE),품목명(ITEM_NAME) 으로 구성되어 있다고 보면..

    SELECT A.MON 월, A.ITEM_CODE 품목코드, D.ITEM_NAME 품목명,
    SUM(NVL(A.AMOUNT,0)) 입고,
    SUM(NVL(B.AMOUNT,0)) 출고,
    SUM(NVL(C.AMOUNT,0)) 반품,
    SUM(NVL(A.AMOUNT,0)-NVL(B.AMOUNT,0)-NVL(C.AMOUNT,0)) 현재고
    FROM PUT01 A,PUT02 B, PUT03 C, ITEM D
    WHERE A.ITEM_CODE = D.ITEM_CODE
      AND A.ITEM_CODE = B.ITEM_CODE
      AND A.ITEM_CODE = C.ITEM_CODE
      AND A.MON = B.MON
      AND A.MON = C.MON
    GROUP BY A.MON, A.ITEM_CODE


  • Profile
    엄화용 2002.12.24 10:14
    답변감사드려요
    그런데요.
    그렇게 쿼리를 작성하면
    입고 출고 반품 수량이 입력된 품목만 출력됩니다.
    제가 해야 하는건요

    입고만 있는 품목도 나오고, 출고만 있는 품목도 나와야 하거든요
    그러니까,

    품목   입고   출고    반품  현재고
    연필    10        -      3         7
    색연필  5        2        -        3
    볼펜     2        1        1         0
    ...........................
    이런식으로요

    조건문에
      WHERE A."ITEM_CODE" = D."ITEM_CODE"
      AND A."ITEM_CODE" = B."ITEM_CODE"
      AND A."ITEM_CODE"=  C."ITEM_CODE"
    으로 되어 있기때문에
    입고 출고 반품 모두 입력된 값 즉, 볼펜만 출력됩니다.
    저는 위 내용처럼 연필 색연필 볼펜 모두 나와야 해야 하는데
    잘 안되네요...

    다시 한번 답변부탁드려요.


  • Profile
    최은석 2002.12.24 19:31
    다음처럼 해보세요...
    Outer Join 을 사용해서여...


    SELECT A.MON 월, A.ITEM_CODE 품목코드, D.ITEM_NAME 품목명,
    SUM(NVL(A.AMOUNT,0)) 입고,
    SUM(NVL(B.AMOUNT,0)) 출고,
    SUM(NVL(C.AMOUNT,0)) 반품,
    SUM(NVL(A.AMOUNT,0)-NVL(B.AMOUNT,0)-NVL(C.AMOUNT,0)) 현재고
    FROM PUT01 A,PUT02 B, PUT03 C, ITEM D
    WHERE A.ITEM_CODE = D.ITEM_CODE
      AND A.ITEM_CODE = B.ITEM_CODE(+)
      AND A.ITEM_CODE = C.ITEM_CODE(+)
      AND A.MON = B.MON(+)
      AND A.MON = C.MON(+)
    GROUP BY A.MON, A.ITEM_CODE




  • Profile
    최병철 2002.12.24 19:16
    참고하세요

    Union을 이용해 보세요.

    즉,

    Select  T.품명, Sum(T.입고필드) As 입고필드,
               Sum(T.출고필드) As 촐고필드,
               Sum(T.반품필드) As 반품필드,
               (  Sum(T.입고필드)  -  Sum(T.출고필드)  
                   -   Sum(T.반품필드) )   As  재고필드
    From   (
                 Select   A.품명,  A.입고필드,  0 As 출고필드, 0 As 반품필드
                 From     입고테이블 A
                 Union    ALL
                 Select   B.품명,  0  As  입고필드,  B.출고필드, 0 As 반품필드
                 From     출고테이블  B
                 Union    ALL
                 Select   C.품명,  0  As  입고필드,  0 As 출고필드,  C.반품필드
                 From     반품테이블  C
              )  T
    Group    By  T.품명
            
    으로 한번 테스트 해 보세요.


  • Profile
    열심히 2002.12.25 21:04
    위에서 답변해주신 님처럼 아웃조인을 하시면..

    안되요...

    입고테이블을 기준으로 잡으면 안됩니다...

    님이 원하시는 입고 출고 반품..모든 자료가 나오기 위해서는 반드시

    어떠한 경우에라도 존재 하는 값을 가진 테이블을 기준으로 잡아야 합니다..

    그래서 코드 테이블이 있는것이죠.. 이런 경우를 위해서..

    제품코드 테이블을 추가 시킨후에 나머지 테이블을 아웃조인 걸어보세요..

    쿼리는 간단하게..최대한 간단하게...리소스는 중요한것........




    • 이방인
      2002.12.24 19:39
      Edit Box의 내용을 읽어 오는것은 후킹까지는 필요가 없습니다. 단지 해당 윈도그즈의 핸들과 그가 포함...
    • 하기현
      2002.12.24 20:47
      빠른 답변에 감사를 드립니다. 그런데... 님께서 보내주신 소스에 의하면 에디트박스의 명칭을 알아야 하...
    • 이방인
      2002.12.24 21:11
      M$ Visual Studio 의 Spy++ 이나 Borland의 WinSight 를 참고 하시면됩니다... FindWindow와 FindWin...
    • 구창민
      2002.12.24 22:16
      안녕하세요~ 구창민입니다. 아래 루틴을 사용해 보시구여. 만일 안된다면, XP의 경우 각 로그인된 ...
    • 이성근
      2002.12.25 02:41
      답변에 감사 드립니다. 그런데 루틴을 사용하려다 보니 TSHFileOpStruct 형식이 선언 되지를 않읍니다. ...
    • 구창민
      2002.12.26 03:14
      uses   ShellApi 추가하세요. ^_^ 항상 즐거운 프로그래밍 하시길~~
    • 이성근
      2002.12.26 18:38
      답변에 감사 드립니다. 말씀하신데로 ShellApi를 Uses절에 포함하여 컴파일 하니 이상없이 컴파일은 됩...
    • 세라핌
    • 2002.12.24 10:53
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2002.12.24 22:24
      안녕하세요~ 구창민입니다. 질문만 봐서는 정확한 오류와 의도를 간파하지 못하겠구여..^^; 일단 RGB...
    • 세라핌
      2002.12.24 23:04
      안녕하세요 답변 감사합니다. 제가 하려고 하는것은 그림의 특정색을 다른색으로 변경하려 합니다. 처음...
    • 구창민
      2002.12.25 01:30
      아래 코드는 색을 Invert 시키는 예제인데 참고하시면 해결하실 수 있을거 같네요. 그럼~ 즐거운 프...
    • 엄화용
    • 2002.12.24 05:43
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 최은석
      2002.12.24 09:23
      PUT01 입고, PUT02 출고, PUT03 반품,  ITEM 아이템 테이블..... PUT01,PUT02,PUT03 테이블은 ...
    • 엄화용
      2002.12.24 10:14
      답변감사드려요 그런데요. 그렇게 쿼리를 작성하면 입고 출고 반품 수량이 입력된 품목만 출력됩니다. ...
    • 최은석
      2002.12.24 19:31
      다음처럼 해보세요... Outer Join 을 사용해서여... SELECT A.MON 월, A.ITEM_CODE 품목코드, D.ITEM...
    • 최병철
      2002.12.24 19:16
      참고하세요 Union을 이용해 보세요. 즉, Select  T.품명, Sum(T.입고필드) As 입고필드...
    • 열심히
      2002.12.25 21:04
      위에서 답변해주신 님처럼 아웃조인을 하시면.. 안되요... 입고테이블을 기준으로 잡으면 안됩니다.....
    • 감토바위
      2002.12.26 19:48
      정확하진 않더라도 좋으니 답변좀 부탁드립니다.... 고수님들의 의견이라도...
    • 김후진
    • 2002.12.24 04:28
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김민우
      2002.12.24 21:32
      어드민 계정으로 로그인후... 제어판 -> 관리도구 ->컴퓨터 관리 그안에 보면 로컬 사용자 ...
    • 김진호
    • 2002.12.24 04:09
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 머슴
      2002.12.24 04:43
           가장 먼저 해볼 수 있는 경우는 소스가 있는 경우라면...    &nb...
    • 강승익
    • 2002.12.24 03:38
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2002.12.24 22:27
      안녕하세요~ 구창민입니다. 실행파일의 파라메터로 DLL명을 넘기시겠단 뜻인거 같군요. System.Param...
    • 호야
      2002.12.24 20:53
      외부에서 받아들인다.. 라는 말이 이해가 안되네염... 단순히 LoadLibrary에서 쓰이는 경로를 지정하지...
    • 박재현
    • 2002.12.24 03:05
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 최은석
      2002.12.24 03:35
      sql 문 사용하심이.. 우선 비교의 기준이 되는 칼럼이 name 라고 가정한다면.. select name,count(*) ...
    • 열심히
      2002.12.24 03:35
      그냥 간단하게 쿼리로.. SELECT ------- COUNT(*) FROM TABLE_NAME GROUP BY  ------- HAV...
    • *^^*
      2002.12.24 03:31
      'select distinct(필드명) from 테이블명' 하셔도 되고요.. 아님 레코드카운트까지 while 문 돌문서 'sel...
    • 호야
    • 2002.12.24 02:53
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 미소나눔
      2003.01.07 19:37
      제목 그래로이네요 정적 메소드는 오버라이드 될수 없죠... function BoxRect(ALeft, ATop, ARight, ABo...
    • 우소
    • 2002.12.24 02:47
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박재근
      2003.02.27 00:55
      혹 CURRENT_USER에 대한 것이 아닌지.. 이곳의 내용은 서비스가 읽지 못합니다. OS에서 그렇게 설정이 되어...
    • 김진호
    • 2002.12.24 02:37
    • 11 COMMENTS
    • /
    • 0 LIKES
    • 최은석
      2002.12.24 03:30
    • 김진호
      2002.12.24 03:50
    • 열심히
      2002.12.24 03:28
    • 김진호
      2002.12.24 03:46
    • 열심히
      2002.12.24 03:59
    • 김진호
      2002.12.24 04:44
    • 김진호
      2002.12.24 04:53
    • • • •
    • 뿡뿡이
    • 2002.12.24 00:55
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이희진
      2002.12.27 01:20
      일반적으로 엑셀의 한 셀에 데이터를 찍을 때,     Sheet.Cells[1 , i + 2] := '찍...
    • 열심히
      2002.12.24 02:07
      세로의 칸은 1,2,3,4,5,6,7.... 이런식으로 나가고 가로는 A,B,C,D,....Z,AA,AB,AC,AD,AE,... 이런식...
    • 감우길
    • 2002.12.24 00:19
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 나옹이
    • 2002.12.23 22:29
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 고지범
      2002.12.24 01:56
      됩니다... 단... 타입을 선언해야 합니다... 아래의 예제를 보믄서... implementation type  &...
    • 열심히
      2002.12.23 23:15
      저도 지금 하려고 해보니 안되네염.. 저렇게는 못쓰나?? 급하시면 그냥 전역으로 배열선언하시고.....
    • 열심히
      2002.12.23 21:54
      답변 serial에 대해서는 트리거로 만드는게 가장 나을것 같습니다... 아님 특정 테이블에 field에다가 s...
    • 열심히
      2002.12.23 21:46
      날짜에 대한 연산을 원하신다면 팁게시판이나 이게시판에서 찾아보실수 있을겁니다.. 먼저 테이블에 아...
    • 왕초보
      2002.12.23 22:06
      지금 테이블은 제가 임의로 수정할 수 없는 상황이여서 어쩔 수없이 한달의 자료를 모두 넣어야 하고요.. ...
    • 열심히
      2002.12.23 23:10
      죄송한데요 값을 한번에 넣는다는게 무슨 뜻이죠??.. 전혀 감이 안잡히네요..값을 한번에 넣는다라.......