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 40132 게시물 읽기
No. 40132
SQL update and insert
작성자
ohyouknow(ohyouknow)
작성일
2013-05-15 15:36
조회수
7,008

2가지 SQL실행문이 있습니다.
SQL1(
DCode )의 결과 값으로 SQL2(DCodeCount )의 값을 변경 하고자 합니다.
하나의 SQL문으로 가능 할까요?

------------------------------------------------------------------------------------------------------------------------------ SQL1
select RANK,COUNT(*) from DCode where code like '1233113211132%' group by RANK

RANK    (No column name)
13         1
14         5      --> 이 결과 값을 DCodeCount에 "update
"
15         25
    --> 이 결과 값을 DCodeCount에 "insert"

------------------------------------------------------------------------------------------------------------------------------ SQL2
select Rank,Count from DCodeCount where CodeID=(select min(CodeID) from DCode where Code like '1233113211132%')

Rank    Count
13         1
14        
3 

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

 

주어진 정보가 좀 부족하지만.. 아래와 같은 방식으로 가능하지 않을까요?


MERGE INTO DCODECOUNT T
USING (
      SELECT MIN(CODEID)   CODEID
            ,RANK          RANK
            ,COUNT(*)      CNT
      FROM DCODE
      WHERE CODE LIKE '1233113211132%'
      GROUP BY RANK
      ) S
ON (T.CODEID = S.CODEID
AND T.RANK   = S.RANK  )
WHEN MATCHED THEN
 UPDATE
 SET T.COUNT = S.CNT
 WHERE (T.COUNT <> S.CNT)   --> 값이 다른 경우에만 UPDATE.
    OR (T.COUNT IS NULL )   --> T.COUNT 컬럼의 값이 NULL이라도 UPDATE
WHEN NOT MATCHED THEN
 INSERT (CODEID
        ,RANK
        ,COUNT   )
 VALUES (S.CODEID
        ,S.RANK
        ,S.COUNT )
;

 

M님이 2013-05-20 13:51에 작성한 댓글입니다. Edit

M님

답변 감사 드립니다.

님의 SQL문을 보고 많은 참고가 되었습니다.

감사드립니다.

ohyouknow(ohyouknow)님이 2013-05-21 17:34에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
40136ORA-12592 오류 [1]
강병구
2013-05-20
12327
40134상하위 3%제외한 평균값 [2]
조형래
2013-05-20
6805
40133날짜별 코드별 상태집계 관련 도움 부탁드립니다. [2]
디비하수
2013-05-15
7616
40132SQL update and insert [2]
ohyouknow
2013-05-15
7008
40131해당 프로시져럴 생성하면 오류와함께 생성이되네요. [1]
새하정
2013-05-15
6772
40130connect by 로 구현한 결과 하위정보 sum 하기 [2]
무는무다
2013-05-15
6790
40129테이블 키값 만들기 [1]
아폴론
2013-05-14
6136
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다