각컬럼끼리의 합 0 3 1,926

by 송미진 [2007.08.03 16:33:12]


안녕하세요? 날씨가 넘넘 무더워요...끈적끈적 다습한 날씨가 지치게 만드네요..^^;;

 

제가 너무 암껏도 몰라서 개념이 없어요...ㅜㅜ 가르쳐주세요~

 

테이블 A에 아래와 같이 데이터가 들어있다고 가정할때요....

===============================================================================

YEAR  GUBUN  DEPT  JAN  FEB  MAR  APR  MAY  JUN  JUL  AUG  SEP OCT NOV  DEC

===============================================================================

2004  A       aa    1    2    3    4    5    6    7    8    9    1    1    2

2004  B       bb    3    8    7    8    3    6    7    0    3    9    4    7

2005  A       cc    4    9    3    4    5    8    3    4    2    0    1    2

2005  B       dd    2    5    3    8    3    6    7    8    9    1    6    2

2006  A       ee    5    1    3    3    4    5    6    7    8    9    1    1

2006  B       ff    7    2    3    1    0    6    7    8    9    1    6    2

2007  A       gg    1    7    3    4    5    6    7    8    9    1    1    2

2007  B       hh    8    9    3    4    5    6    7    8    0    9    1    2

===============================================================================

 

1. 해당년도의 이번달까지의 합을 구하려면 어떻게 해야하나요?

   SYSDATE의 이번달이요....지금이 8월이니까 1월부터 8월까지의 합이요.

   즉, JAN + FEB + MAR + APR + MAY + JUN + JUL + AUG을 구하는거요.

   만약에 5월이면 JAN + FEB + MAR + APR + MAY 을 구하는거겠죠.

 

2. 해당년도의 전달까지의 합을 구하려면 어떻게 해야하나요?

   SYSDATE의 전달이요....지금이 8월이니까 1월부터 7월까지의 합이요.

   즉, JAN + FEB + MAR + APR + MAY + JUN + JUL을 구하는거요.

   만약에 5월이면 JAN + FEB + MAR + APR을 구하는거겠죠.

 

이걸 쿼리문으로 가르쳐주세요.....ㅜㅜ

by 마농 [2007.08.03 00:00:00]
, CASE WHEN TO_CHAR(sysdate,'mm') >= '01' THEN jan ELSE 0 END
+ CASE WHEN TO_CHAR(sysdate,'mm') >= '02' THEN feb ELSE 0 END
+ CASE WHEN TO_CHAR(sysdate,'mm') >= '03' THEN mar ELSE 0 END
+ CASE WHEN TO_CHAR(sysdate,'mm') >= '04' THEN apr ELSE 0 END
+ CASE WHEN TO_CHAR(sysdate,'mm') >= '05' THEN may ELSE 0 END
+ CASE WHEN TO_CHAR(sysdate,'mm') >= '06' THEN jun ELSE 0 END
+ CASE WHEN TO_CHAR(sysdate,'mm') >= '07' THEN jul ELSE 0 END
+ CASE WHEN TO_CHAR(sysdate,'mm') >= '08' THEN aug ELSE 0 END
+ CASE WHEN TO_CHAR(sysdate,'mm') >= '09' THEN sep ELSE 0 END
+ CASE WHEN TO_CHAR(sysdate,'mm') >= '10' THEN oct ELSE 0 END
+ CASE WHEN TO_CHAR(sysdate,'mm') >= '11' THEN nov ELSE 0 END
+ CASE WHEN TO_CHAR(sysdate,'mm') >= '12' THEN dec ELSE 0 END
AS current_month_sum

by 송미진 [2007.08.03 00:00:00]
오! 빠르고 정확한 답변!!! 정말 감사합니다~

by 임우빈 [2007.08.04 00:00:00]
아 케이스 끼리도 더하기가 되는구낭...

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