Postgresql update 쿼리 질문 0 2 1,545

by 커피는스벅 [SQL Query] DB postgresql [2017.11.13 15:40:12]


postgresql 데이터베이스 초보자 입니다 ㅠㅠ

---USER 테이블---

이름 시간 상태
AAA 2017-11-05 12:00:00 1
BBB 2017-10-30 12:00:00 1
CCC 2017-11-01 12:00:00 1
AAA 2017-08-01 12:00:00 1
BBB 2017-06-01 12:00:00 1

위와 같은 형식의 DB를 현재 날짜기준으로  1달이상 지난 상태에 대해서 update 쿼리로 상태를 변경하려고 하는데

막히는 부분이 있어서 질문 남깁니다.

이름 시간 상태
AAA 2017-11-05 12:00:00 1
BBB 2017-10-30 12:00:00 1
CCC 2017-11-01 12:00:00 1
AAA 2017-08-01 12:00:00 0
BBB 2017-06-01 12:00:00 0

제가 하려고 하는 쿼리는 바로 위에 처럼 이름을 기준으로 봤을 때 

현재 날짜에서 1달 이상 지난 이름의 상태에 대해서 0 으로 변경하려고 합니다.

select 문으로 조회까지는 실행 했는데 update를 하면 오류가 발생합니다 ㅠㅠ

 

어떻게 쿼리문을 짜야 할까요 ㅠㅠ

 

ps. 간단하게 하기 위해서 컬럼을 3개만 작성했으며 컬럼 갯수는 다릅니다

by 마농 [2017.11.13 16:14:45]

"select 문으로 조회까지는 실행 했는데 update를 하면 오류가 발생합니다 ㅠㅠ"
질문이 이게 끝인가요? 해당 사항들을 자세히 보여주셔야죠.
작성하신 select 문과 update 문 그리고 실행시 오류메시지를 보여주세요.

-- 1. Select : 갱신 대상 확인 --
SELECT *
  FROM t
 WHERE st = 1
   AND dt < current_date - interval '1' month
;
-- 2. Update : 1.Select 에서의 조건을 그대로 이용하여 갱신 --
UPDATE t
   SET st = 0
 WHERE st = 1
   AND dt < current_date - interval '1' month
;

 


by 커피는스벅 [2017.11.13 18:06:13]

답변 주셔서 감사합니다 ...
확인해보니 제가 실행 했던 쿼리가 그 조건에 부합하지 않는 내용이라 올리지 못하였습니다..

추가적으로 '이름' 기준으로 시간을 대조 해야해서 ㅠㅠ 좀 더 확인해봐야 할 것 같네요..

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