Q&A

  • [급질문]날짜 찾아가는 방법...매우급함...
날짜를 찾아가게 하는 방법을 알려주세요...





만약에 2001년 2월 14일 입력(20010214)이렇게입력을 했다면



다른 DB 전년도 2000년 12월 레코드를 찾아가서 그 레코드만 전체를 보여주는 거요...





A DB는 날짜(YYYYMMDD)와 Code 그리고 금액으로 되어 있으며,



다른 B DB는 날짜(YYYYMM)과 금액6개 각각 있습니다...



여기에서 날짜는 3,6,9,12월만 입력이 되어 있습니다.





Process를 3,6,9,12월만 한다는 것이겠죠...



12개월중에서 2001년1월몇일, 2월몇일 또 해당하는 12월 몇일을 입력했다면 2000년 12월을(여기서 12월은 작년이 되겠지요.)



12개월중에서 2001년 4월몇일,5월몇일 또 해당하는 3월 몇일을 입력했다면 2001년 3월을



12개월중에서 2001년 7월몇일,8월몇일 또 해당하는 6월 몇일을 입력했다면 2001년 6월을



12개월중에서 2001년 10월몇일,11월몇일 또 해당하는 9월 몇일을 입력했다면 2001년 9월을 찾아서 보여주는 거에요...





A DB의 날짜는 그날 입력한 날이 입력되는 것이고 B DB에서 6개의 금액이 해당하는 Code와 함께 모두 들어옵니다...



그러면서 Quick Reports에 날짜를 입력하는 날짜의 해당하는 날짜를 찾아서



그 레코드에 해당하는 6개의 금액필드와 함께 레코드에 보여주는 것입니다...



=====================================================================

2001년 1월의 어느날을 입력했을 경우====> B DB의 2001년 12월 레코드 보여줌

2001년 2월의 어느날을 입력했을 경우====>B DB의 2001년 12월 레코드 보여줌

2001년 3월의 어느날을 입력했을 경우====>B DB의 2001년 03월 레코드 보여줌

2001년 4월의 어느날을 입력했을 경우====>B DB의 2001년 03월 레코드 보여줌

2001년 5월의 어느날을 입력했을 경우====>B DB의 2001년 03월 레코드 보여줌

2001년 6월의 어느날을 입력했을 경우====>B DB의 2001년 06월 레코드 보여줌

2001년 7월의 어느날을 입력했을 경우====>B DB의 2001년 06월 레코드 보여줌

2001년 8월의 어느날을 입력했을 경우====>B DB의 2001년 06월 레코드 보여줌

2001년 9월의 어느날을 입력했을 경우====>B DB의 2001년 09월 레코드 보여줌

2001년 10월의 어느날을 입력했을 경우====>B DB의 2001년 09월 레코드 보여줌

2001년 11월의 어느날을 입력했을 경우====>B DB의 2001년 09월 레코드 보여줌

2001년 12월의 어느날을 입력했을 경우====>B DB의 2001년 12월 레코드 보여줌

========================================================================





답변을 부탁합니다...저 회사 짤리게 생겼어요...부탁합니다...도저히 뭐가뭔지 모르겠어요...



도움이 될만한 것좀 자세히좀 부탁합니다...

2  COMMENTS
  • Profile
    아폴론 2001.02.20 06:24
    아이리스 wrote:

    > 날짜를 찾아가게 하는 방법을 알려주세요...>

    > 만약에 2001년 2월 14일 입력(20010214)이렇게입력을 했다면

    > 다른 DB 전년도 2000년 12월 레코드를 찾아가서 그 레코드만 전체를 보여주는 거요...

    > A DB는 날짜(YYYYMMDD)와 Code 그리고 금액으로 되어 있으며,

    > 다른 B DB는 날짜(YYYYMM)과 금액6개 각각 있습니다...

    > 여기에서 날짜는 3,6,9,12월만 입력이 되어 있습니다.

    > Process를 3,6,9,12월만 한다는 것이겠죠...

    > 12개월중에서 2001년1월몇일, 2월몇일 또 해당하는 12월 몇일을 입력했다면 2000년 12월을(여기서 12월은 작년이 되겠지요.)

    > 12개월중에서 2001년 4월몇일,5월몇일 또 해당하는 3월 몇일을 입력했다면 2001년 3월을

    > 12개월중에서 2001년 7월몇일,8월몇일 또 해당하는 6월 몇일을 입력했다면 2001년 6월을

    > 12개월중에서 2001년 10월몇일,11월몇일 또 해당하는 9월 몇일을 입력했다면 2001년 9월을 찾아서 보여주는 거에요...

    > A DB의 날짜는 그날 입력한 날이 입력되는 것이고 B DB에서 6개의 금액이 해당하는 Code와 함께 모두 들어옵니다...

    > 그러면서 Quick Reports에 날짜를 입력하는 날짜의 해당하는 날짜를 찾아서

    > 그 레코드에 해당하는 6개의 금액필드와 함께 레코드에 보여주는 것입니다...

    > =====================================================================

    > 2001년 1월의 어느날을 입력했을 경우====> B DB의 2001년 12월 레코드 보여줌

    > 2001년 2월의 어느날을 입력했을 경우====>B DB의 2001년 12월 레코드 보여줌

    > 2001년 3월의 어느날을 입력했을 경우====>B DB의 2001년 03월 레코드 보여줌

    > 2001년 4월의 어느날을 입력했을 경우====>B DB의 2001년 03월 레코드 보여줌

    > 2001년 5월의 어느날을 입력했을 경우====>B DB의 2001년 03월 레코드 보여줌

    > 2001년 6월의 어느날을 입력했을 경우====>B DB의 2001년 06월 레코드 보여줌

    > 2001년 7월의 어느날을 입력했을 경우====>B DB의 2001년 06월 레코드 보여줌

    > 2001년 8월의 어느날을 입력했을 경우====>B DB의 2001년 06월 레코드 보여줌

    > 2001년 9월의 어느날을 입력했을 경우====>B DB의 2001년 09월 레코드 보여줌

    > 2001년 10월의 어느날을 입력했을 경우====>B DB의 2001년 09월 레코드 보여줌

    > 2001년 11월의 어느날을 입력했을 경우====>B DB의 2001년 09월 레코드 보여줌

    > 2001년 12월의 어느날을 입력했을 경우====>B DB의 2001년 12월 레코드 보여줌

    > ========================================================================

    > 답변을 부탁합니다...저 회사 짤리게 생겼어요...부탁합니다...도저히 뭐가뭔지 모르겠어요...

    > 도움이 될만한 것좀 자세히좀 부탁합니다...



    안녕하세요...

    정신이 없긴 없는데 얼릉하고 제우스한테 보고하러 갑시다.



    adate := inputdate; ,=====요기는 20010101 요런식이라고 가정함

    ayear := copy(adate, 1,4);

    cdate := copy(adate, 5,2);

    if (cdate = '01') or (cdate = '02') or (cdate = '12') then

    ddate := '12' else

    if (cdate = '03') or (cdate = '04') or (cdate = '05') then

    ddate := '03' else

    if (cdate = '06') or (cdate = '07') or (cdate = '08') then

    ddate := '06' else

    if (cdate = '09') or (cdate = '10') or (cdate = '11') then

    ddate := '09';



    with Query1 do begin <=====요쿼리를 레포트랑 연결

    close;

    sql.clear;

    sql.add('select * from bdb');

    sql.add('where bdate = :p_date');

    parambyname('p_date').asstring := ayear + ddate;

    open;

    printform.qrlabel1.caption := copy(fieldbyname('bdate').asstring, 1, 6);

    만약 날짜밴드가 디테일이라면 쿼리1의 Calck 이벤트를 활용하세요

    end;



    제가 이해를 잘했나 모르겠네요.

    정곡을 비추어야 할텐데...









  • Profile
    장동민 2001.02.20 04:49
    문제 파악이 조금 힘들지만 저는 이런것을 sql로 처리를 합니다.



    입력날짜:19991201이면



    a:=copy('1999120101',6)

    select * from 테이블명 where 날짜필드명 like '"%'+a+'%"'