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 38811 게시물 읽기
No. 38811
초보자입니다.쿼리문 속도가 너무 안나와서요...
작성자
염정훈(ych3372)
작성일
2011-08-23 08:45
조회수
5,608

select /*+ index(sys_C007096 acnt)*/
    acnt.acntcode,
       acnt.acntname,
       decode(acnt.remainderpos,'D',befo.dbsum - befo.crsum,befo.crsum - befo.dbsum) befrem,
       decode(acnt.remainderpos,'D',daily.dbsum - daily.crsum,daily.crsum - daily.dbsum) dayrem,
       acnt.remainderpos
  from a_code_acnt acnt,
       (select acntcode,
               sum(dbamt) dbsum,
               sum(cramt) crsum
          from a_slip_main
         where account_date < '2011.08.23'
           and account_date <> to_date('1900.01.01')
           and slipcomp = '11'
     and acntcode in ('1110100','1110300','1110501','1110588','1111101')
          group by acntcode) befo,
       (select acntcode,
               sum(dbamt) dbsum,
               sum(cramt) crsum
          from a_slip_main
         where account_date = '2011.08.23'
              and account_date <> to_date('1900.01.01')
           and slipcomp = '11'
     and acntcode in ('1110100','1110300','1110501','1110588','1111101')
        group by acntcode) daily
 where acnt.acntcode = befo.acntcode(+)
   and acnt.acntcode = daily.acntcode(+)
   and acnt.acntcode in ('1110100','1110300','1110501','1110588','1111101')

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

-------------------------------------------------------
 where account_date = '2011.08.23'
   and account_date <> to_date('1900.01.01')
이부분이 이상하네요.
account_date 가 문자타입인지? 날짜타입인지? 모르겠네요?
-------------------------------------------------------

SELECT acnt.acntcode
     , acnt.acntname
     , main.befrem
     , main.dayrem
     , acnt.remainderpos
  FROM a_code_acnt acnt
     , (SELECT acntcode
             , SUM(CASE WHEN account_date < TO_CHAR(sysdate, 'yyyy.mm.dd')
                        THEN DECODE(remainderpos,'D',1,-1)*(dbsum - crsum)
                    END) befrem
             , SUM(CASE WHEN account_date = TO_CHAR(sysdate, 'yyyy.mm.dd')
                        THEN DECODE(remainderpos,'D',1,-1)*(dbsum - crsum)
                    END) dayrem
          FROM a_slip_main
         WHERE slipcomp = '11'
           AND acntcode IN ('1110100','1110300','1110501','1110588','1111101')
         GROUP BY acntcode
        ) main
 WHERE acnt.acntcode = main.acntcode(+)
   AND acnt.acntcode IN ('1110100','1110300','1110501','1110588','1111101')
;

마농(manon94)님이 2011-08-23 10:26에 작성한 댓글입니다.

답변 너무 감사합니다... ^^

account_date = date타입이구요.. ^^ 회계쪽 테이블 입니다..

그리고 주신 쿼리문에서 remainderpos 는 a_code_acnt에 있는 테이블에 있는

필드라서 그런지 열명이 맞지 않는다는 오류가 납니다.. ^^

답글 너무너무 감사드립니다..

염정훈(ych3372)님이 2011-08-23 10:35에 작성한 댓글입니다.

SELECT acnt.acntcode
     , acnt.acntname
     , DECODE(acnt.remainderpos, 'D', main.befrem, -main.befrem) befrem
     , DECODE(acnt.remainderpos, 'D', main.dayrem, -main.dayrem) dayrem
     , acnt.remainderpos
  FROM a_code_acnt acnt
     , (SELECT acntcode
             , SUM(CASE WHEN account_date <  TRUNC(sysdate)
                        THEN dbsum - crsum
                    END) befrem
             , SUM(CASE WHEN account_date >= TRUNC(sysdate)
                        THEN dbsum - crsum
                    END) dayrem
          FROM a_slip_main
         WHERE slipcomp = '11'
           AND acntcode IN ('1110100','1110300','1110501','1110588','1111101')
         GROUP BY acntcode
        ) main
 WHERE acnt.acntcode = main.acntcode(+)
   AND acnt.acntcode IN ('1110100','1110300','1110501','1110588','1111101')
;

마농(manon94)님이 2011-08-23 11:05에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
38815Script 관련 질문입니다. [3]
나그네
2011-08-24
5566
38814MERGE INTO DBLINK 사용~ [2]
주하파파
2011-08-23
7149
38813TIMESTAMP 필드 검색 속도 향상 [2]
레이첼
2011-08-23
6996
38811초보자입니다.쿼리문 속도가 너무 안나와서요... [3]
염정훈
2011-08-23
5608
38809plsql에서 select한 결과를 insert or update 할때 [1]
nob
2011-08-22
5487
38808proc에서 오라클 접속후 core dump 발생
초보디비
2011-08-22
4423
38807DELETE/INSERT 시간이 너무 오래 걸립니다 [2]
신동민
2011-08-22
4960
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다