당연히 될 것이라고 생각했습니다. 역시 실전이 중요한듯... :-)
PostgreSQL 에서는 지원하는 방식인지라 그렇게 생각했습니다.
영길님, 요즘 별일은 없으시겠지요. :-)
>>박영길 님께서 쓰시길<<
:: 안녕하세요.
::
:: 인포믹스는 업데이트되는 테이블을 서브쿼리를
:: 통하여 조건으로 설정할 수 없습니다... T_T
:: 즉 아래의 것을 다음과 같이 하면 될 것 같은 데
:: 오류가 발생할 것입니다.
::
:: update an set (usrid,an_chk)=('gagamel','1')
:: where an_chk = '0' and rgn_code = '981' and
:: a_num = (select max(a_num) from an where an_chk = '0' and
:: rgn_code = '981');
::
:: 여기서 a_num이 Primary Key라면
::
:: update an set (usrid,an_chk)=('gagamel','1')
:: where a_num = (select max(a_num) from an
:: where an_chk = '0' and rgn_code = '981');
::
:: 그러므로 결국 두개의 문장으로 나누어서 실행해야 합니다... T_T
:: 사용하시는 언어가 무엇인지 몰라서 그냥 슈더코드로...
::
:: ? = select max(a_num) from an where an_chk = '0' and rgn_code '981';
:: update an set (usrid,an_chk)=('gagamel','1')
:: where a_num = ?
::
:: 이것이 불편하다면 Stored Procedure로 만들어서 한번에
:: 실행시키는 것도 하나의 방법이라고 생각됩니다.
::
:: 그럼 수고하세요.
::
:: >>정재익 님께서 쓰시길<<
::
:: :: "update an set (usrid,an_chk)=('gagamel','1')
:: :: where an_chk='0' and rgn_cod='981' and max(a_num)"
:: ::
:: :: 개인적으로 Informix 를 설치해본 정도이고 사용해 보지는 않아서 정확한 답변인지는 모르겠지만 ma
:: x(a
:: :: _num) 이라는 aggregate 함수를 사용하는 부분에서 그냥 subquery 로 (select max(a_num) from tabl
:: e_n
:: :: ame) 이런식으로 subquery 로 명시해 주면 되지 않을까요?
:: ::
:: :: >>가가멜 님께서 쓰시길<<
:: ::
:: :: :: update 문에서 Sub Query를 하려고 하는데여..
:: :: :: an 테이블에 usrid, an_chk, a_num, rgn_cod 네개의 필드가 있구여...
:: :: :: a_num에는 회원 등록번호가 30만개 정도 등록이 되어 있습니다.
:: :: :: an_chk는 회원등록번호의 사용여부를 판별하는 필드인데 1이면 사용중인 번호고
:: :: :: 0이면 사용해도 괜찮은 필드인데...
:: :: :: 업데이트를 할때 a_num 의 내용중에서 제일 큰 값을 구해야 되는데
:: :: :: 잘 안되네여..
:: :: :: "update an set (usrid,an_chk)=('gagamel','1')
:: :: :: where an_chk='0' and rgn_cod='981' and max(a_num)" <- 이렇게 명령을
:: :: :: 썼는데 다른 건 다 되는데 max(a_num) 을 같이 써주면 에러가 나네여.. ㅠ.ㅠ
:: :: :: 업데이트 할때 a_num의 max 값을 조건으로 주려면 어떻게 해야 하는지여..
:: :: :: 조언 좀 부탁드릴께여... 그럼...
:: :: ::
|