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 40227 게시물 읽기
No. 40227
쿼리 질문입니다.
작성자
이문정(blau1004)
작성일
2013-08-19 17:18
조회수
5,683

TB AS (

SELECT  'A'  AS DEP, 1000 AMT, 19000 SIL_AMT

    FROM DUAL

   UNION ALL

SELECT  'A'  AS DEP, 2000 AMT, 19000 SIL_AMT

    FROM DUAL

   UNION ALL

SELECT  'A'  AS DEP, 3000 AMT, 19000 SIL_AMT

    FROM DUAL

SELECT  'B'  AS DEP, 1000 AMT, NULL SIL_AMT

    FROM DUAL

   UNION ALL

SELECT  'B'  AS DEP, 2000 AMT, NULL SIL_AMT

    FROM DUAL

   UNION ALL

SELECT  'B'  AS DEP, 3000 AMT, NULLSIL_AMT

    FROM DUAL

 

)

 

위같은 데이터일 경우에.. DEP 별로  SIL_AMT가 NULL이면 SUM(AMT) , 그렇지 않으면 MAX(SIL_AMT)를 하고 싶은데..

(DEP 별로 SIL_AMT는 같은 값이 들어갑니다.)

 

쿼리 질문드립니다. DECODE 도 사용할 수 없어서여..

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

 SELECT dep, amt, sil_amt

      , COALESCE(sil_amt, SUM(amt) OVER(PARTITION BY dep)) val 
  FROM tb
아린(arin76)님이 2013-08-19 17:48에 작성한 댓글입니다.

with TB AS (
SELECT  'A'  AS DEP, 1000 AS AMT, 19000 AS SIL_AMT FROM DUAL UNION ALL
SELECT  'A'  AS DEP, 2000 AMT, 19000 SIL_AMT FROM DUAL UNION ALL
SELECT  'A'  AS DEP, 3000 AMT, 19000 SIL_AMT FROM DUAL UNION ALL
SELECT  'B'  AS DEP, 1000 AMT, NULL SIL_AMT FROM DUAL UNION ALL
SELECT  'B'  AS DEP, 2000 AMT, NULL SIL_AMT FROM DUAL UNION ALL
SELECT  'B'  AS DEP, 3000 AMT, NULL SIL_AMT FROM DUAL
)
SELECT DEP
            , NVL2(SUM(SIL_AMT), MAX(SIL_AMT), SUM(AMT)) AS DEP_SUMAX
FROM TB
GROUP BY DEP

빈이님이 2013-08-19 17:59에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
40230전월까지 누계약 월별로 구하는 쿼리 [2]
프로그래머
2013-08-20
6462
40229쿼리 질문입니다.ㅠ [1]
새내기
2013-08-20
5790
40228텍스트파일 오라클 db에 넣기
질문
2013-08-19
5276
40227쿼리 질문입니다. [2]
이문정
2013-08-19
5683
40226oracle insert 에러 무시할려면... [2]
서응주
2013-08-19
7699
40225xdb 8080 포트 변경
김장혁
2013-08-16
5784
40224unix oracle client 설치에 문의 [1]
김종호
2013-08-13
6085
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다