Q&A

  • 데이타베이스




* 김영대님 우선 답변 감사드리구요....

db는 ms_sql이거든요...

근데요... 값이 제대로 나오는 거 같지 않는데요...

제가 하려는거 아래 소스거든요.



with Query1, Query1.sql do

begin

Close;

Clear;

add(' SELECT tac_code,tac_name,tacdate2');

add(' FROM TACBDM ');

add(' where tacdate2 >= :b and tacdate2 <= :c ');

add(' order by tacdate2 ');

add(' minus ');

add(' SELECT tac_code, tacdate3 ');

add(' FROM TACBANK ');

Params[0].Asstring :='19991203';

Params[1].Asstring :='19991203';

open;



요렇게 했더니 error입니다.

where구문을 없애고 MINUS해도 제대로 값을 얻을 수 없습니다.

조건문은 어떻게 해야 하나요



다시한번 도움부탁드려요...





2  COMMENTS
  • Profile
    엄화용 1999.12.07 21:07
    엄화용 wrote:

    >

    >

    > * 김영대님 우선 답변 감사드리구요....

    > db는 ms_sql이거든요...

    > 근데요... 값이 제대로 나오는 거 같지 않는데요...

    > 제가 하려는거 아래 소스거든요.

    >

    > with Query1, Query1.sql do

    > begin

    > Close;

    > Clear;

    > add(' SELECT tac_code,tac_name,tacdate2');

    > add(' FROM TACBDM ');

    > add(' where tacdate2 >= :b and tacdate2 <= :c ');

    > add(' order by tacdate2 ');

    > add(' minus ');

    > add(' SELECT tac_code, tacdate3 ');

    > add(' FROM TACBANK ');

    > Params[0].Asstring :='19991203';

    > Params[1].Asstring :='19991203';

    > open;

    >

    > 요렇게 했더니 error입니다.

    > where구문을 없애고 MINUS해도 제대로 값을 얻을 수 없습니다.

    > 조건문은 어떻게 해야 하나요

    >

    > 다시한번 도움부탁드려요...





    * 제가 질문하고 제가 다시 글 올립니다.

    참조하세오



    select tac_code, tac_name

    from tacbdm

    where tac_code not in <-------

    (SELECT TAC_CODE FROM TACBANK)<---

    AND TACDATE LIKE (조건)<-----조건은 TACBDM



    요렇게 하면 됩니다.

    그리고 (SELECT TAC_CODE FROM TACBANK)<---부분에

    조건문포함은(SELECT TAC_CODE FROM TACBANK WHERE ......)입니다.







    >

    >

  • Profile
    김대호 1999.12.07 06:49
    엄화용 wrote:

    >

    >

    > * 김영대님 우선 답변 감사드리구요....

    > db는 ms_sql이거든요...

    > 근데요... 값이 제대로 나오는 거 같지 않는데요...

    > 제가 하려는거 아래 소스거든요.

    >

    > with Query1, Query1.sql do

    > begin

    > Close;

    > Clear;

    > add(' SELECT tac_code,tac_name,tacdate2');

    > add(' FROM TACBDM ');

    > add(' where tacdate2 >= :b and tacdate2 <= :c ');

    > add(' order by tacdate2 ');

    > add(' minus ');

    > add(' SELECT tac_code, tacdate3 ');

    > add(' FROM TACBANK ');

    > Params[0].Asstring :='19991203';

    > Params[1].Asstring :='19991203';

    > open;

    >

    > 요렇게 했더니 error입니다.

    > where구문을 없애고 MINUS해도 제대로 값을 얻을 수 없습니다.

    > 조건문은 어떻게 해야 하나요

    >

    > 다시한번 도움부탁드려요...









    *-------------------------------------------------

    안녕하세요....

    음.. 전 MS_SQL을 사용한 적이 없어서 'minus라는 것은 잘 모르겠어요

    그런데 이 minus라는 것이 'union'의 옵션 정도라고 생각되는데

    맞는지요...... 같은 레코드는 제외시키는....

    만약 그렇다면은 (맞나??)

    add(' SELECT tac_code,tac_name,tacdate2');

    ...

    add(' SELECT tac_code, tacdate3 ');

    이 두개의 문장에서 두개의 필드의 타입과 갯수가 같아야만 합니다.

    그래야 두개의 select문장이 문장처럼 불러질 테니까요....

    두번째 select 문장에 tac_name를 추가해 보세요...

    그럼... 답변이 되었는지 모르겠네요.....

    >

    >