database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 40184 게시물 읽기
No. 40184
안녕하십니까? 모르는게 있어 이렇게 글 남깁니다.
작성자
황인준(초콜릿바나나)
작성일
2013-07-08 10:06ⓒ
2013-07-08 10:07ⓜ
조회수
6,808

날짜

거래처코드 제품타입 판매량
20130101 000777 710 10
20130115 000777 700 15
20130120 000777 720 20
20130123 000777 800 25
20130127 000777 800 30

 모르는 게 있어 이렇게 글을 남깁니다.

아시는 분은 답변 해주시면 감사할 것 같습니다.

제가 궁금한 건 이런 테이블이 있을 때 1월 한달 동안의 000777 거래처의 판매량을 구하되

제품타입 800의 판매량과 800이 아닌 제품타입의 판매량을 나눴으면 해서입니다.

원하는 출력 결과의 형태가

거래처코드 제품타입 판매량
000777 원단(제품타입: 800일 경우) 55
000777 상자(제품타입: 800이 아닐 경우) 45

이런 형태가 나오도록 하고 싶습니다.

제가 짜놓은 sql 형태는

select 거래처코드, 제품타입, sum(판매량)

from 테이블명

where 날짜 between '20130101' and '20130131'

and cust_code = '000777'

group by 거래처코드, 제품타입

이정도로 간단한 형태입니다.

도움 부탁드리겠습니다.

이 글에 대한 댓글이 총 5건 있습니다.

 WITH t(날짜, 거래처코드, 제품타입, 판매량) AS(

SELECT '20130101', '000777', '710', 10 FROM dual UNION ALL
SELECT '20130115', '000777', '700', 15 FROM dual UNION ALL
SELECT '20130120', '000777', '720', 20 FROM dual UNION ALL
SELECT '20130123', '000777', '800', 25 FROM dual UNION ALL
SELECT '20130127', '000777', '800', 30 FROM dual
)
SELECT 거래처코드
     , DECODE(제품타입, '800', '원단(제품타입:800일경우)'
                            , '상자(제품타입:800이 아닐 경우)'
       ) 제품타입 
     , SUM(판매량)                       
  FROM t
 WHERE 날짜 BETWEEN '20130101' AND '20130131'
   AND 거래처코드 = '000777'
 GROUP BY 거래처코드
     , DECODE(제품타입, '800', '원단(제품타입:800일경우)'
                            , '상자(제품타입:800이 아닐 경우)'
       ) 
아린(arin76)님이 2013-07-08 10:21에 작성한 댓글입니다.
이 댓글은 2013-07-08 10:21에 마지막으로 수정되었습니다.

아린님 정말 감사합니다.

덕분에 잘 몰랐던 문제가 해결되었습니다.

황인준님이 2013-07-08 11:00에 작성한 댓글입니다. Edit

아린님 하나만 더 여쭤봐도 될까요?

아린님이 짜주신 형태에서

원단과 상자의 판매량 합계도 표시할려면 어떻게 해야할까요?

거래처코드 제품타입 판매량
000777 원단 55
000777 상자 45
000777 100

이렇게 표현하고 싶습니다.

황인준(초콜릿바나나)님이 2013-07-08 11:24에 작성한 댓글입니다.
SELECT 거래처코드
     , DECODE(GROUPING(DECODE(제품타입, '800', '원단', '상자')), 1, '합계'
                     , DECODE(제품타입, '800', '원단', '상자')) 제품타입 
     , SUM(판매량) 판매량                   
  FROM t
 WHERE 날짜 BETWEEN '20130101' AND '20130131'
   AND 거래처코드 = '000777'
 GROUP BY 거래처코드
     , ROLLUP(DECODE(제품타입, '800', '원단', '상자'))
아린(arin76)님이 2013-07-08 12:08에 작성한 댓글입니다.

아린님 다시 한번 감사드립니다.

황인준(초콜릿바나나)님이 2013-07-08 13:26에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
40188작년 같은주 찾기 방법 [3]
차병은
2013-07-10
6116
40186모르는 게 많아 또 질문합니다. [6]
황인준
2013-07-08
6592
40185오라클 sequence 질문 [1]
천정대
2013-07-08
6903
40184안녕하십니까? 모르는게 있어 이렇게 글 남깁니다. [5]
황인준
2013-07-08
6808
40183Squirrel SQL Client 3.5.0 오라클 SELECT결과 한글문제
이명훈
2013-07-06
6855
40182redo log space requests 값..
하람
2013-07-05
5902
40181MUTATING ERROR 해결 방법 좀 부탁드리겠습니다. [2]
박재덕
2013-07-03
6468
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다