하나의 테이블 내에 데이터 비교 후 수정 0 4 634

by 피곤한피카츄 [SQLServer] sql query [2018.06.04 10:42:22]


111.JPG (71,059Bytes)

안녕하세요!

column3에 두가지의 데이터 값(A,B)가 있고,

column2에는 가,나,다의 데이터가 있습니다.

column3의 데이터 B에는 column2의 가,나,다 각각의 데이터에 해당하는 1,2,3이 column1에 있습니다.

사진에서 보시듯, column3의 값이 A인 row에 column1 값들을 그에 맞추어 변경하고 싶습니다.

어떻게 해야할지 감이 안잡혀서 도움요청드려요.. ㅠㅠ

 

by 우리집아찌 [2018.06.04 10:48:10]

COLUMN3값은 두개로 고정인가요?

샘플 데이터를 원본을 올려주세요.


by 신이만든지기 [2018.06.04 11:05:27]
WITH T AS (
SELECT NULL COL1, '가' COL2, 'A' COL3 FROM DUAL UNION ALL
SELECT NULL COL1, '가' COL2, 'A' COL3 FROM DUAL UNION ALL
SELECT NULL COL1, '가' COL2, 'A' COL3 FROM DUAL UNION ALL
SELECT NULL COL1, '나' COL2, 'A' COL3 FROM DUAL UNION ALL
SELECT NULL COL1, '나' COL2, 'A' COL3 FROM DUAL UNION ALL
SELECT NULL COL1, '나' COL2, 'A' COL3 FROM DUAL UNION ALL
SELECT NULL COL1, '다' COL2, 'A' COL3 FROM DUAL UNION ALL
SELECT NULL COL1, '다' COL2, 'A' COL3 FROM DUAL UNION ALL
SELECT 1 COL1, '가' COL2, 'B' COL3 FROM DUAL UNION ALL
SELECT 1 COL1, '가' COL2, 'B' COL3 FROM DUAL UNION ALL
SELECT 2 COL1, '나' COL2, 'B' COL3 FROM DUAL UNION ALL
SELECT 2 COL1, '나' COL2, 'B' COL3 FROM DUAL UNION ALL
SELECT 3 COL1, '다' COL2, 'B' COL3 FROM DUAL UNION ALL
SELECT 3 COL1, '다' COL2, 'B' COL3 FROM DUAL UNION ALL
SELECT 3 COL1, '다' COL2, 'B' COL3 FROM DUAL UNION ALL
SELECT 3 COL1, '다' COL2, 'B' COL3 FROM DUAL
)
SELECT B.COL1, A.COL2, A.COL3
  FROM T A
     , (SELECT DISTINCT *
          FROM T
         WHERE COL3='B') B
  WHERE A.COL2= B.COL2      
  ORDER BY A.COL3, B.COL1     ;

 밑에서 4번째행  3, 나, B 은 오타로 간주하였습니다.


by 마농 [2018.06.04 11:39:13]
-- Oracle
UPDATE t a
   SET column1 = (SELECT column1
                    FROM t
                   WHERE column2 = a.column2
                     AND column3 = 'B'
                     AND ROWNUM  = 1
                  )
 WHERE column3 = 'A'
;
-- MSSQL
UPDATE a
   SET a.column1 = b.column1
  FROM t a
 INNER JOIN
       (SELECT column2
             , MIN(column1) column1
          FROM t
         WHERE column3 = 'B'
         GROUP BY column2
        ) b
    ON a.column2 = b.column2
 WHERE a.column3 = 'A'
;

 


by 피곤한피카츄 [2018.06.04 13:14:01]

모두들 감사합니다!! 

또 하나 배워갑니다!!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입