select 된 list를 업데이트, 0 1 111

by 김쿠쿠 [2018.01.05 09:38:22]


안녕하세요.

select list 결과값을,

다중 컬럼에 업데이트를 하고 싶은데

잘 되지가 않아서 질문을 드립니다.

 

업데이트 할 행들의 여러 컬럼값들이 모두 다릅니다.

허나 조회된 select list 에 key가 있구요,

그 key(id)에 맞는 행에 다중 컬럼을 각각 업데이트 하고 싶습니다.

 

 select
            1440 as end_time,
            1440 - start_time as duration,
            id
        from
            table
        where
            id in (
                select
                    max(id)
                from
                    table
                where
                    short_date = 20180103
                group by
                    user_id,
                    short_date
                having
                    max(end_time) != 1440
            );

 

이 쿼리의 결과값들을 table에 고대로 updte를 하고 싶습니다.

쿼리를 작성할 수 있게 도움을 부탁드려요.

 

by 마농 [2018.01.08 08:26:50]
UPDATE table
   SET end_time = 1440
     , duration = 1440 - start_time
 WHERE id IN (SELECT MAX(id)
                FROM table
               WHERE short_date = 20180103
               GROUP BY user_id, short_date
               HAVING MAX(end_time) != 1440
              )
;

 

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