이조건은 어떻게 만들어야하나요..? 0 2 1,101

by ymym [SQLServer] [2019.12.09 11:26:20]


CROSSDOCK 수량 조건 : 출고_메인의 창고코드가 C003
, 오더배치만(출고메인의 배치번호가 O(영문) 로 시작함
, 출고_패킹에서 한배치 한매장에서 한박스번호에 1SKU(1가지 상품코드)로 6개이상 수량으로 이루어진 박스번호가 8개 이상일 경우 CROSSDOCK 을 1로 카운트함

위 조건인데..

SELECT CASE WHEN 창고코드 = 'C003' AND 배치번호 LIKE 'O%'  까지는 했는데 그다음부터 잘 모르겠습니다..  출고_메인이랑 출고_패킹 조인은 했습니다..

by 마농 [2019.12.09 12:31:18]

질문이 이해가 안가요.
원본 대비 결과표 자료 예시를 들어 주세요.


by ymym [2019.12.09 13:33:08]

사용할 테이블 : 출고_메인,출고_패킹,기준_매장,기준_바코드마스터 

조건 : 
1)출고_메인의 수불일자가 10월21일~11월20일
2)출고_메인의 상태구분 >= '4' 
3)출고_메인의 입력구분 = 'GL1'
4)출고_메인의 수불수량이 0이 아닌것들
5)기준_바코드마스터의 정산항목이 F 인 상품코드 들만
6)기준_매장의 매장종류가 M93 인것들만
7)엑셀양식조건
7-1)날짜는 출고_메인의 수불일자
7-2)총출고수량은 출고_메인의 수불수량의 합 또는 출고_패킹의 수량의합. 두가지는 같은 수량이어야함. 다른수량이 있다면 확인이 필요함.
7-3)CROSSDOCK 수량 조건 : 출고_메인의 창고코드가 C003
, 오더배치만(출고메인의 배치번호가 O(영문) 로 시작함
, 출고_패킹에서 한배치 한매장에서 한박스번호에 1SKU(1가지 상품코드)로 6개이상 수량으로 이루어진 박스번호가 8개 이상일 경우 CROSSDOCK 을 1로 카운트함
7-4)그외(CROSSDOCK 조건)의 모든 수량은 수량정산으로 카운트함
 

결과는 

날짜    총 출고수량     수량정산      CROSSDOCK

~        ~                  ~                ~

 

입니다.

테스트로 하는데 제가 한 건 

SELECT A.수불일자, SUM(A.수불수량) 총출고수량
  FROM dbo.출고_메인 A WITH(NOLOCK)
LEFT OUTER JOIN dbo.기준_바코드마스터 B WITH(NOLOCK) ON A.B코드 = B.B코드
                                                    AND A.상품코드 = B.상품코드
LEFT OUTER JOIN dbo.기준_매장 C WITH(NOLOCK) ON A.B코드 = C.B코드
                                            AND A.매장코드 = C.매장코드
LEFT OUTER JOIN dbo.출고_패킹 D WITH(NOLOCK) ON A.센터코드 = D.센터코드
                                            AND A.배치번호 = D.배치번호
                                            AND A.순번 = D.순번
 WHERE A.수불일자 BETWEEN '20191021' AND '20191120'
   AND A.상태구분 >= '4'
   AND A.입력구분 = 'GL1'
   AND A.수불수량 <> 0
   AND B.정산항목 = 'F'
   AND C.매장종류 = 'M93'
GROUP BY A.수불일자

이렇게 짠 상태고 날짜와 총 출고수량까지만 했습니다.. 그이후 수량정산과 CROSSDOCK 컬럼은 어떻게 구해야할지 모르겠네요..

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입