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 40730 게시물 읽기
No. 40730
통계 화면 개발 쿼리 문의좀 드립니다.
작성자
김미나(GhostDT)
작성일
2015-03-05 11:36ⓒ
2015-03-05 11:41ⓜ
조회수
7,606

안녕하세요~ 초보 개발자 통계화면 쿼리좀 부탁드립니다.

 

1개의 기초테이블

basiccode, basicname, areacode(종목)

 

7개의 데이터성 테이블

t1 (seq, basiccode(fk), amount(사용량), cost(요금), stdt)

t2 (seq, basiccode(fk), amount(사용량), cost(요금), stdt)

t3 (seq, basiccode(fk), amount(사용량), cost(요금), stdt)

t4 (seq, basiccode(fk), amount(사용량), cost(요금), stdt)

t5 (seq, basiccode(fk), amount(사용량), cost(요금), stdt)

t6 (seq, basiccode(fk), amount(사용량), cost(요금), stdt)

t7 (seq, basiccode(fk), amount(사용량), cost(요금), stdt)

 

원하는 출력값

---------------------------------------------------

t1 | areacode1 t1 sum(amount) | areacode2 t1 sum(amount) | areacode3 t1 sum(amount) .....

t1 | areacode1 t1 sum(cost) | areacode2 t1 sum(cost) | areacode3 t1 sum(cost) .....

t2 | areacode1 t2 sum(amount) | areacode2 t2 sum(amount) | areacode3 t2 sum(amount) .....

t2 | areacode1 t2 sum(cost) | areacode2 t2 sum(cost) | areacode3 t2 sum(cost) .....

t3 | areacode1 t3 sum(amount) | areacode2 t3 sum(amount) | areacode3 t3 sum(amount) .....

t3 | areacode1 t3 sum(cost) | areacode2 t3 sum(cost) | areacode3 t3 sum(cost) .....

......

.....

...

..

.

 

이렇게 출력하려면 어떻게 쿼리를 만들어야 할지 막막해서 올려 보니다.

도움좀 부탁드려도 될런지요..

 

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

with code (basiccode, basicname, areacode)
as (      select 'basiccode1','basiccode1','areacode1' from dual
union all select 'basiccode2','basiccode2','areacode2' from dual
union all select 'basiccode3','basiccode3','areacode3' from dual
union all select 'basiccode4','basiccode4','areacode4' from dual
union all select 'basiccode5','basiccode5','areacode5' from dual
)
, t1 (seq,basiccode,amount,cost,stdt)
as (      select 1,'basiccode1',10,1000,sysdate from dual
union all select 2,'basiccode1',20,2000,sysdate from dual
union all select 3,'basiccode1',30,3000,sysdate from dual
union all select 4,'basiccode2',10,1000,sysdate from dual
union all select 5,'basiccode3',50,5000,sysdate from dual
union all select 6,'basiccode3',90,9000,sysdate from dual
)
, t2 (seq,basiccode,amount,cost,stdt)
as (      select 1,'basiccode1',80,8000,sysdate from dual
union all select 2,'basiccode1',20,2000,sysdate from dual
union all select 3,'basiccode1',30,3000,sysdate from dual
union all select 4,'basiccode2',10,1000,sysdate from dual
union all select 5,'basiccode3',50,5000,sysdate from dual
union all select 6,'basiccode3',90,9000,sysdate from dual
union all select 7,'basiccode4',50,5000,sysdate from dual
union all select 8,'basiccode5',60,6000,sysdate from dual
)
select 't1 | ' || listagg( areacode ||' ' ||'t1'||' '||decode(r,1,amount,cost), ' | ' ) within group (order by areacode) ver11g
     , decode(r,1,'t1 | ' || sys.stragg(' ' ||  areacode ||' ' ||'t1'||' '||amount)
                 ,'t1 | ' || sys.stragg(' ' ||  areacode ||' ' ||'t1'||' '||cost)) ver10g
 from (select r, b.areacode, sum(t1.amount) amount, sum(t1.cost) cost     
         from t1
                 inner join code b on t1.basiccode = b.basiccode
                 inner join (select level r from dual connect by level <=2) on 1=1
        group by r,b.areacode
  ) t1
group by r
union all
select 't2 | ' || listagg( areacode ||' ' ||'t2'||' '||decode(r,1,amount,cost), ' | ' ) within group (order by areacode)
     , decode(r,1,'t2 | ' || sys.stragg(' ' ||  areacode ||' ' ||'t2'||' '||amount)
                 ,'t2 | ' || sys.stragg(' ' ||  areacode ||' ' ||'t2'||' '||cost))
 from (select r, b.areacode, sum(t2.amount) amount, sum(t2.cost) cost     
         from t2
                 inner join code b on t2.basiccode = b.basiccode
                 inner join (select level r from dual connect by level <=2) on 1=1
        group by r,b.areacode
  ) t2
group by r
 

질문에 중요한 단서가 하나 빠진 듯

아무튼 응용해서 해보세요

최성준(junkk)님이 2015-03-05 20:03에 작성한 댓글입니다.
이 댓글은 2015-03-05 20:06에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
40734VB에서 오라클 WITH 문 사용시 오류 [2]
이창선
2015-03-12
7593
40733두 테이블 비교 후 기준데이터 추출
리민우
2015-03-10
7097
40731이름이 다르고, 테이블 구조가 동일한 테이블 데이터 합치기 [1]
choiksn
2015-03-06
7069
40730통계 화면 개발 쿼리 문의좀 드립니다. [1]
김미나
2015-03-05
7606
40729체크쿼리 어떻게 만들어야 할까요? [1]
궁금맨
2015-03-05
6933
40728oracle 분석함수 질문입니다. [12]
트랄랄라
2015-03-04
9436
40727정해진 수대로 레코드 분할 [1]
시로73
2015-03-02
6673
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다