글쎄요. 질문하시는 의미가 정확하게 파악이 되지는 않지만 나름대로 이해한 바를 말씀 드리겠습니다.
일단 period 필드가 char(1) 이라는 자료형이어서는 무언가 곤란한점을 많이 겪을 것 같습니다. 만약 이것이 대여 기간이라면 애시당초 interval 자료형으로 하던지 아니면 아예 int 자료형으로 하시는 것이 옳을 것 같습니다. 만약 그것도 여의치 않다면 그냥 text 자료형으로 하시기 바랍니다. 그러는 것이 int 형등으로의 형변환이 편리합니다.
일단 자료형이 int 형이라고 가정하고 설명하겠습니다.
그럴 경우라면 다음과 같은 query 로 해결되지 않을까요?
select now()::date + (select period from loan_config where id='회원아이디');
이런정도의 query 면 해결될 것으로 생각됩니다. subquery 에서 돌아오는 값은 반드시 한개여야만 합니다. 그리고 subquery 는 (....) (괄호)로 묶어 줘야 합니다.
-- 이성준 님이 쓰신 글:
>> 도서관 프로그램인데요..
>> loan_config 테이블에는 period(char(1)) 이란 필드가 있습니다
>> 대여기간을 뜻합니다
>>
>> 오늘 책을 대여 한다면 반납예정일은
>> select 'now()::date'+'반납예정일'::interval 이 되겠지요
>>
>> 그런데 이렇게 하려면 loan_config에서 쿼리 한번 부르고 또 다시
>> 쿼리를 부르기 때문에 쿼리를 두번부르게 됩니다
>>
>> 이걸 한번에 하기 위해서는 어떻게 해야 할까요
>> select 'now()::date'+select period from loan_config'::interval
>> 직관적으로는 이런 식인데요
>> 함수나 서브쿼리쓰면 어떻게 해결할수 있을것 같은데
>> 구체적으로 쿼리문이 떠오르지 않습니다..
|