컬럼 두개에 조건 따로주기(밑에 글 수정입니다.) 0 4 966

by 에브리데이나잇쇼 [SQL Query] 쿼리구조 [2015.03.23 17:29:52]


안녕하세요

select  store_cd,  -- 매장 코드

          sum(dd_qty),  --일자별 합계

          sum(mm_qty)  --월별 합계

  from A

where 일자 between '20150322' and '20150322'

 group by store_cd

 

다음과 같은 쿼리가 있는데요

이쿼리를 dd_qty컬럼은 where절 그대로 22일자의 합계만 출력하고 싶고

mm_qty컬럼은 1일부터 22일까지로 1일부터 오늘일자까지 합계를 출력하게 하고 싶습니다.

즉  두 컬럼을 나눠서 두조건으로 출력하고 싶다는 겁니다.

여기서 '20150322'는 파라미터로 주어지는 변수 입니다.(오늘일자를가져옴)

고수님들 도움좀 부탁드리겠습니다.

by zzhozang [2015.03.23 17:42:47]

아래 올리신거랑 다른게 없는것 같습니다.~~;


by 창조의날개 [2015.03.23 17:43:23]

일자가 DATE 타입인 경우는 위와 같이 하면 될듯 합니다.

SELECT STORE_CD
     , SUM( CASE WHEN 일자 BETWEEN TO_DATE(TO_CHAR(SYSDATE,'YYYYMMDD'),'YYYYMMDD')
                 AND TO_DATE(TO_CHAR(SYSDATE,'YYYYMMDD')||'235959','YYYYMMDDHH24MISS') THEN DD_QTY ELSE 0 END) AS DD_QTY
     , SUM(MM_QTY) AS MM_QTY
  FROM A
WHERE 일자 BETWEEN TO_DATE(TO_CHAR(SYSDATE,'YYYYMM')||01,'YYYYMMDD') AND SYSDATE
GROUP BY STORE_CD
;

 

 


by 에브리데이나잇쇼 [2015.03.23 17:53:47]

여기서 '일자' 가 변수인가요?


by 마농 [2015.03.23 18:13:36]

dd_qty, mm_qty 컬럼명이 두개 맞나요?

합계낼 컬럼은 하나가 아닐까 생각되네요?

원 질문에 답글 다시 달았는데요.

기존 답변과 크게 다르지 않습니다.

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