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 2023년 1월 - SQLER의 업데이트 강좌 리스트 코난(김대우) 2023.01.02 527
9552 어셈블리 문자열 저장 ㅠㅠ 꼴랑깔랑 2016.10.16 2266
9551 쿼리문 문의드립니다. [4] 꾹스 2016.10.14 3025
9550 엑셀에 있는 데이터로 DB를 변경하고싶습니다. [3] 인뱅 2016.10.14 2128
9549 sql 작성 조언 부탁드립니다 [1] 미키롱 2016.10.14 2324
9548 간단한 쿼리문의드립니다. [3] 후알유? 2016.10.14 1950
9547 identity로 생성된 seq_no를 가지고 다른테이블을 update하거나 insert할려고합니다. [5] 뽀구 2016.10.12 2035
9546 링크서버문의 [1] 큘러 2016.10.11 3312
9545 query 문의. [2] 다복이 2016.10.11 2307
9544 data 동시 수정 [2] 김영훈_281547 2016.10.11 2048
9543 PK 관련 문의 슬이슬이 2016.10.07 2514
9542 인덱스 번호 강제로 만드는 방법 혹시 있을까요? [2] neiyan 2016.10.06 2488
9541 그룹결과 중복 공백처리 쿼리 질문드립니다. [1] HoyaSoft 2016.10.05 3524
9540 오라클 2개의 컬럼 동시 중복 찾아내는 쿼리문이 궁금합니다. [2] 창영 2016.10.05 2420
9539 group by에 어려움이 있어요 도와주세요~~ [2] 제지니 2016.10.04 2141
9538 모든 테이블의 데이터를 insert쿼리로 가져오기 [2] 연금술사 2016.10.04 3152
9537 쿼리문 궁금한게 있습니다. ㅠㅠ [1] puffyteemo 2016.10.04 2544
» 쿼리에 뭐가 문제인지 모르겠습니다.. [2] MSSQL초보입문자 2016.10.04 2484
9535 쿼리 좀 도와 주세요 [2] 이유진_301818 2016.10.04 2637
9534 시스템 데이터베이스 복구 관련하여 질문 있습니다. 방혁 2016.10.04 2076
9533 case when 사용시 집계 또는 하위 쿼리가 포함된 식에서는 집계 함수를 수행할 수 없습니다 [3] 냥냥 2016.10.03 6733





XE Login