Q&A

  • 쿼리 가르쳐 주십시요..부탁합니다.
입고 와 출고를 각각 월별로 db를 만들었습니다.

총 24개가 되는군요...(왜 이렇게 했는지 저도 잘 모릅니다)

필드는 날짜, 품목, 거래처, 수량 이렇게 있습니다

이걸 가지고

05-01-01 ~ 05-02-28 이렇게 치면

품목 : a
----------------------------------------------------------------------
   날짜            거래처            입고          출고          재고
----------------------------------------------------------------------
05-01-01         a                100
05-01-01         b                                  10
05-01-15         c                                  20
05-01-31         d                                  30
----------------------------------------------------------------------
    월계                               100            60          40
----------------------------------------------------------------------
05-02-01         a                100    
05-02-01         b                                  30
05-02-15         a                100
05-02-28         d                                  150
-----------------------------------------------------------------------
     월계                                200           180
-----------------------------------------------------------------------
     누계                                300           240         60
-----------------------------------------------------------------------                

이렇게 만들고 싶습니다.

검색을 하니까 union all을 쓰면 된다고 하시는데 정말 모르겠습니다.

db를 2개일때는 union all을 써서 잘 됐는데

db가 여러개이다보니까 도저히 모르겠습니다.

가르쳐주십시요........부탁합니다.
2  COMMENTS
  • Profile
    Crazy™ 2005.01.27 03:18
    설마..테이블이 입고, 출고 월별로 24개? ㅡ.ㅡ
    왜 이렇게 만들었을까??? 하는 의심이.. 월별 입,출자료가 그렇게 많은건지...흠...

    품목별 인가요? 걍 노가다 하세요.
    그리고 테이블들은 조건만큼만 넣으시면 되겠네요..

    SELECT 품목, 날짜, 거래처, SUM(입고) AS 입고, SUM(출고) AS 출고, SUM(입고) - SUM(출고) AS 재고
      FROM
    (
         -- 일계 --
         SELECT 품목, 날짜, 거래처, 수량 AS 입고, 0 AS 출고, 0 AS 재고
           FROM 입고1월테이블
          WHERE 날짜 BETWEEN '20050101' AND '20050131'  
          UNION ALL
         SELECT 품목, 날짜, 거래처, 수량 AS 입고, 0 AS 출고, 0 AS 재고
           FROM 입고2월테이블
          WHERE 날짜 BETWEEN '20050101' AND '20050131'
              ...
          UNION ALL
         SELECT 품목, 날짜, 거래처, 0 AS 입고, 수량 AS 출고, 0 AS 재고
           FROM 출고1월테이블
          WHERE 날짜 BETWEEN '20050101' AND '20050131'
          UNION ALL
         SELECT 품목, 날짜, 거래처, 0 AS 입고, 수량 AS 출고, 0 AS 재고
           FROM 출고2월테이블
          WHERE 날짜 BETWEEN '20050101' AND '20050131'
             ....
          
          -- 월계 --    
          UNION ALL        
         SELECT 품목, '200501월계' AS 날짜, 거래처, 수량 AS 입고, 0 AS 출고, 0 AS 재고
           FROM 입고1월테이블
          WHERE 날짜 BETWEEN '20050101' AND '20050131'
          UNION ALL
         SELECT 품목, '200101월계' AS 날짜, 거래처, 0 AS 입고, 수량 AS 출고, 0 AS 재고
           FROM 출고1월테이블
          WHERE 날짜 BETWEEN '20050101' AND '20050131'
          UNION ALL
         SELECT 품목, '200502월계' AS 날짜, 거래처, 수량 AS 입고, 0 AS 출고, 0 AS 재고
           FROM 입고1월테이블
          WHERE 날짜 BETWEEN '20050101' AND '20050131'
          UNION ALL
         SELECT 품목, '200102월계' AS  날짜, 거래처, 0 AS 입고, 수량 AS 출고, 0 AS 재고
          WHERE 날짜 BETWEEN '20050101' AND '20050131'
           FROM 출고1월테이블
          ......

         -- 누계 --          
          UNION ALL      
         SELECT 품목, '누계' AS 날짜, 거래처, 수량 AS 입고, 0 AS 출고, 0 AS 재고
           FROM 입고1월테이블
          WHERE 날짜 BETWEEN '20050101' AND '20050131'
          UNION ALL
         SELECT 품목, '누계' AS  날짜, 거래처, 0 AS 입고, 수량 AS 출고, 0 AS 재고
          WHERE 날짜 BETWEEN '20050101' AND '20050131'
           FROM 출고1월테이블
          ......
            
    )
    GROUP BY 품목, 날짜, 거래처
    ORDER BY 품목, 날짜, 거래처



  • Profile
    김종현 2005.01.27 03:25
    감사합니다.