DECLARE @CURR DATETIME 

SET @CURR = '2016-03-01' 

SELECT *
      , (SELECT CUSTABB FROM ZCIM10P WITH(NOLOCK) WHERE CUSTNO = A.CUSTNO) CUSTABB
      , (SELECT HGNAME  FROM PPIM10P WITH(NOLOCK) WHERE EMPNO  = A.EMPNO)  EMPNM
   FROM (
 SELECT '1' GUBUN, A.QFACOD, A.EMPNO, A.CUSTNO
      , SUM(CASE WHEN A.ORDDATE BETWEEN CONVERT(CHAR(10), DATEADD(D, DATEPART(DW,@CURR) * -1 - 5, @CURR), 120)
 AND CONVERT(CHAR(10), DATEADD(D, DATEPART(DW,@CURR) * -1 + 1, @CURR), 120) THEN AMT ELSE 0 END) AMT_PW  -- 전주금액
      , SUM(CASE WHEN A.ORDDATE BETWEEN CONVERT(CHAR(10), DATEADD(D, DATEPART(DW,@CURR) * -1 - 5, @CURR), 120)
AND CONVERT(CHAR(10), DATEADD(D, DATEPART(DW,@CURR) * -1 + 1, @CURR), 120) THEN QTY ELSE 0 END) QTY_PW  -- 전주수량   
      , SUM(CASE WHEN A.ORDDATE BETWEEN CONVERT(CHAR(10), DATEADD(D, DATEPART(DW,@CURR) * -1 + 2, @CURR), 120)
AND CONVERT(CHAR(10), DATEADD(D, DATEPART(DW,@CURR) * -1 + 8, @CURR), 120) THEN AMT ELSE 0 END) AMT_CW  -- 금주금액
      , SUM(CASE WHEN A.ORDDATE BETWEEN CONVERT(CHAR(10), DATEADD(D, DATEPART(DW,@CURR) * -1 + 2, @CURR), 120)
 AND CONVERT(CHAR(10), DATEADD(D, DATEPART(DW,@CURR) * -1 + 8, @CURR), 120) THEN QTY ELSE 0 END) QTY_CW  -- 금주수량
      , SUM(CASE WHEN A.ORDDATE BETWEEN CONVERT(CHAR(10), DATEADD(D, -DAY(@CURR), DATEADD(D,1, @CURR)),23)
 AND CONVERT(CHAR(10), DATEADD(D, -DAY(@CURR), DATEADD(M,1, @CURR)),23) THEN AMT ELSE 0 END) AMT_CM  -- 당월금액
      , SUM(CASE WHEN A.ORDDATE BETWEEN CONVERT(CHAR(10), DATEADD(D, -DAY(@CURR), DATEADD(D,1, @CURR)),23)
AND CONVERT(CHAR(10), DATEADD(D, -DAY(@CURR), DATEADD(M,1, @CURR)),23) THEN QTY ELSE 0 END) QTY_CM  -- 당월수량              
   FROM SORD5MV A WITH(NOLOCK)
  WHERE A.ORDDATE BETWEEN CONVERT(CHAR(10), DATEADD(D, -DAY(@CURR), DATEADD(D,1, @CURR)),23) 
                      AND CONVERT(CHAR(10), DATEADD(D, -DAY(@CURR), DATEADD(M,1, @CURR)),23)  
    AND SUBSTRING(A.SLIPNO, 1, 1) <> 'S'
  GROUP BY A.QFACOD, A.EMPNO, A.CUSTNO
 UNION ALL 
 SELECT '2' GUBUN, A.QFACOD, A.EMPNO, A.CUSTNO
      , SUM(CASE WHEN A.OUTDATE BETWEEN CONVERT(CHAR(10), DATEADD(D, DATEPART(DW,@CURR) * -1 - 5, @CURR), 120)
 AND CONVERT(CHAR(10), DATEADD(D, DATEPART(DW,@CURR) * -1 + 1, @CURR), 120) THEN AMT ELSE 0 END) AMT_PW
      , SUM(CASE WHEN A.OUTDATE BETWEEN CONVERT(CHAR(10), DATEADD(D, DATEPART(DW,@CURR) * -1 - 5, @CURR), 120)
AND CONVERT(CHAR(10), DATEADD(D, DATEPART(DW,@CURR) * -1 + 1, @CURR), 120) THEN QTY ELSE 0 END) QTY_PW      
      , SUM(CASE WHEN A.OUTDATE BETWEEN CONVERT(CHAR(10), DATEADD(D, DATEPART(DW,@CURR) * -1 + 2, @CURR), 120)
AND CONVERT(CHAR(10), DATEADD(D, DATEPART(DW,@CURR) * -1 + 8, @CURR), 120) THEN AMT ELSE 0 END) AMT_CW
      , SUM(CASE WHEN A.OUTDATE BETWEEN CONVERT(CHAR(10), DATEADD(D, DATEPART(DW,@CURR) * -1 + 2, @CURR), 120)
AND CONVERT(CHAR(10), DATEADD(D, DATEPART(DW,@CURR) * -1 + 8, @CURR), 120) THEN QTY ELSE 0 END) QTY_CW            
      , SUM(CASE WHEN A.OUTDATE BETWEEN CONVERT(CHAR(10), DATEADD(D, -DAY(@CURR), DATEADD(D,1, @CURR)),23)
AND CONVERT(CHAR(10), DATEADD(D, -DAY(@CURR), DATEADD(M,1, @CURR)),23) THEN AMT ELSE 0 END) AMT_CM
      , SUM(CASE WHEN A.OUTDATE BETWEEN CONVERT(CHAR(10), DATEADD(D, -DAY(@CURR), DATEADD(D,1, @CURR)),23)
AND CONVERT(CHAR(10), DATEADD(D, -DAY(@CURR), DATEADD(M,1, @CURR)),23) THEN QTY ELSE 0 END) QTY_CM                  
   FROM SBOT5MV A WITH(NOLOCK)
  WHERE A.OUTDATE BETWEEN CONVERT(CHAR(10), DATEADD(D, -DAY(@CURR), DATEADD(D,1, @CURR)),23) 
                      AND CONVERT(CHAR(10), DATEADD(D, -DAY(@CURR), DATEADD(M,1, @CURR)),23)  
  GROUP BY A.QFACOD, A.EMPNO, A.CUSTNO
        ) A

캡처3.PNG
[결과값]

결과값은 첨부파일에 있습니다..
일자에 10일이나 20일이나 30일을 넣으면 전주에 대한 데이터가 나오는데
1일이나 2일 같은 앞쪽 일자를 넣으면 데이터가 안나옵니다
1일에서 전주면 지난달 마지막주?가 되게 하고싶은데 어떻게 수정해야할지 모르겠네요..ㅠ
No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 38055
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 20666
9543 PK 관련 문의 슬이슬이 2016.10.07 2555
9542 인덱스 번호 강제로 만드는 방법 혹시 있을까요? [2] neiyan 2016.10.06 2542
9541 그룹결과 중복 공백처리 쿼리 질문드립니다. [1] HoyaSoft 2016.10.05 4234
9540 오라클 2개의 컬럼 동시 중복 찾아내는 쿼리문이 궁금합니다. [2] 창영 2016.10.05 2604
9539 group by에 어려움이 있어요 도와주세요~~ [2] 제지니 2016.10.04 2193
9538 모든 테이블의 데이터를 insert쿼리로 가져오기 [2] 연금술사 2016.10.04 3203
9537 쿼리문 궁금한게 있습니다. ㅠㅠ [1] puffyteemo 2016.10.04 2620
» 쿼리에 뭐가 문제인지 모르겠습니다.. [2] MSSQL초보입문자 2016.10.04 2548
9535 쿼리 좀 도와 주세요 [2] 이유진_301818 2016.10.04 2686
9534 시스템 데이터베이스 복구 관련하여 질문 있습니다. 방혁 2016.10.04 2162
9533 case when 사용시 집계 또는 하위 쿼리가 포함된 식에서는 집계 함수를 수행할 수 없습니다 [3] 냥냥 2016.10.03 7335
9532 질문드립니다. [1] 제지니 2016.10.03 1875
9531 그룹별 특정날짜보다 위면서 최신날짜에 대한 금액 구하기 도와주세요...ㅠㅠ [1] 으네 2016.10.02 2165
9530 My sql - 디비 에서 특정필드의 데이터 누락현상 행담도이장 2016.09.30 2297
9529 <> , != 궁금합니다.. [1] 봉자 2016.09.29 2721
9528 Sql왕초보입니다. 질문드리겠습니다 noonccop 2016.09.29 2701
9527 GO 말고 첫번째와 두번째 사이의 셀렉트를 시간차를 더 둘수 있을까요? [4] neiyan 2016.09.28 2987
9526 쿼리 질문좀 하겠습니다. [2] 달봉이2 2016.09.28 2718
9525 slow query [1] 이유진_301818 2016.09.28 2641
9524 MSSQL에서 쿼리작성 관련 질문 드립니다 [2] MSSQL초보입문자 2016.09.27 2756





XE Login