Q&A

  • 기간별 Select 좀 봐 주세요..
디비에 년도 필드가 있고 월 필드가 있습니다. 텍스트형태로

이넘을 2000년 01월 부터 2001년 01월 까지를 셀렉트 하려 합니다.



sql.add('where((ga_year >= :P_year) and (ga_mnth >= :P_stmm))');

sql.add(' and((ga_year <= :P_year1) and (ga_mnth <= :P_tomm))');

parambyname('P_year').asstring := year.text;

parambyname('P_year1').asstring := year1.text;

parambyname('P_stmm').asstring := stmm.text;

parambyname('P_tomm').asstring := tomm.text;



이렇게 하니 2000.01부터 2000.12월 까지는 잘 되는데 (1237건 Select)

2000.01부터 2001.01월 까지는 않돼요 ( 187건 Select)



어떻게 바꾸어 주어야 제대로 셀렉트가 될까요?.. 으 창피...

1  COMMENTS
  • Profile
    hobakpa 2001.02.08 19:58
    > sql.add('where((ga_year >= :P_year) and (ga_mnth >= :P_stmm))');

    > sql.add(' and((ga_year <= :P_year1) and (ga_mnth <= :P_tomm))');

    > parambyname('P_year').asstring := year.text;

    > parambyname('P_year1').asstring := year1.text;

    > parambyname('P_stmm').asstring := stmm.text;

    > parambyname('P_tomm').asstring := tomm.text;

    >

    > 이렇게 하니 2000.01부터 2000.12월 까지는 잘 되는데 (1237건 Select)

    > 2000.01부터 2001.01월 까지는 않돼요 ( 187건 Select)

    >

    > 어떻게 바꾸어 주어야 제대로 셀렉트가 될까요?.. 으 창피...



    제생각엔 년도와 날짜필드를 붙여서 해보는게 어떨지 생각이 듭니다.

    아래 코딩은 정확하지는 않지만 예를들어



    where between (ga_year + ga_month) and (ga_year + ga_month) 이런식이지요.



    betwwen은 sql 함수입니다. 응용하시면 될듯합니다. 파라미터는 물론 에디트 년도와 월



    을 잘 붙여서 변수로 하시던지 천천히 해보시면 금방 아실겁니다.



    도움이 되셨으면 합니다.