Q&A

  • Query의 조건에서 Null 과 Null 비교은 어떻게 합니까?
안녕하세요
수고 많습니다.

A 테이블에

Code    Size  Color ....
aaa1     10      red
aaa2     11      red
aaa2     11      blue
aaa3     10      
aaa4     10      red
aaa4     11      blue
aaa4     12      green
aaa5     11      
aaa5     12       red
.....       ...      .......

B 테이블 에

Code     Size     Color      Qty
aaa1     10      red            100
aaa2     11      red            200
aaa2     11      blue           300
aaa3     10                       100
aaa4     10      red             200
aaa4     11      blue           100
aaa4     12      green          200
aaa5     11                        300
aaa5     12       red             200
.....       ...      .......

A테이블 과 B테이블을 비교해서 A테이블 전체 칼럼을 가지고 오고
B테이블에서 수량(Qty)만 가지고 오고 싶은데 칼라가 있는것은
이상 없이 제대로 값을 가지고 오는데
칼라가 없는(Null)경우에는 값을 가지고 오지 않는데....
칼라가 없을때도 값을 가지고 오고 싶은데 어떻게 하면 되는지 알고 싶습니다...
그리고 a.Matr_color = b.Matr_Color 둘다 값이 널일때 어떻게 비교을 합니까

with Query1 do
      begin
      Close;
      Sql.Clear
     Sql.Add('Select a.Matr_Code,a.Matr_Name,a.Matr_Size,a.Matr_Color,b.In_Qty From Matr_BarCode a,Jego b where      ');
     Sql.Add('a.Matr_Code = b.Matr_Code and a.matr_Size = b.Matr_Size and a.Matr_Color = b.Matr_Color and b.yymm =:p1       ');

ParamByName('p1').asstring:=DateEdit.text;
..................................

       Close;
       end;
그럼 수고 하세요
4  COMMENTS
  • Profile
    박수영 2004.03.31 19:16
    A테이블의 내용이 B테이블에 그대로 있는 것 같은데 B만 읽어오면 안되나요????

    B만 읽어와서 작업이 가능하다면 그렇게 한번 해보시죠???

  • Profile
    Galaxy 2004.03.31 20:53
    안녕하세요
    답변 감사 합니다.

    저도 B만 읽어오면 좋겠지만 현 사항은 그렇지가 않습니다.
    아래 테이블은 예를 들어서 말한것 입니다.

    사실 A테이블 코드가 B테이블에 없는것도 있고
    B테이블 코드가 A테이블에 없을 수도 있습니다.

    사이즈, 칼라도 그렇습니다.

    a.code=b.code,a.size=b.size ,a.color = b.color 을 비교을 하면
    널 값이 있는것들은 비교가 안되는것인지 값을 가지고 오지 않네요

    aaa3 = aaa3 and 10 = 10 and Null = Null
    이렇게 될경우 해당되는 코드,사이즈,칼라 ....칼람의 값을 아무것도
    가지고 오지 않습니다.

    aaa1 = aaa1 and 10 = 10 and red = red
    원하는 값을 가지고 옵니다.

    칼라 부분이 널 일경우 에는 Code,Size 만 비교하면 될것 같은데...
    커리문에서 어떻게 작성 하는지 알고 싶습니다.(다른 방법이 없을까요)

    이렇게 관심을 가져 주셔서 대단히 감사 드립니다.
    그럼
    수고 하세요

  • Profile
    너구리 2004.03.31 22:25
    오라클에서는 아웃조인이 한쪽으로밖에 걸리지 않습니다.

    오라클인거 같은데..어떤디비 인지는 잘모르겠지만.

    제가 알기론 Null값은 어떤 연산도 되지 않습니다.

    이렇게 하면 어떨까요

    오라클이라면

    nvl(a.color,'xxx') = nvl(b.color,'xxx');

    이렇게 되면 널이면 xxx로 바뀌고 둘다 널일때 조건이 맞게 되겠죠..



  • Profile
    Galaxy 2004.04.01 18:17
    답변에 감사 드립니다.
    안녕하세요
    수고 많습니다.
    MS-SQL7.0을 사용하고 있습니다.
    님의 말씀대로 isNull(b.Color,-1)을 사용을 했는데 잘되지 않네요
    여러 다른 방법으로 테스트를 해보고 싶시지만 시간이 없어서.. 사장님이 눈치를 주네요 빨리 끝내라고...
    그래서 table을 수정하고,퀴리를 수정을 하기로 했습니다.

    이렇게 답변을 주신데 대하여 진심으로 감사드립니다.
    그럼
    수고하세요

    • 진돌
    • 2004.03.31 22:26
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최수림
      2004.03.31 22:54
      html 파일에서 자바스크립트로 파라미터 값으로 지정해주시면 될거 같은데요
    • 연기훈
      2004.03.31 21:32
      위에서 아래, 좌우 출력이.. 무얼 말습하시는 건지 모르것네요... 종이 방향 가로, 세로 를 말습히시...
    • 전명현
      2004.03.31 22:03
      제 질문이 좀 모호했군요.. 보통은 ColumnHeader, Detail Band 순으로 해서, 위에서 부터 한 줄씩 ...
    • 너구리
      2004.03.31 22:31
      퀵리포트에서는 안될겁니다. 무조건 위에서 아래로 밖에 안되더군요.. 하이퍼 리포트는 되더군요..
    • 민상익
    • 2004.03.31 21:02
    • 1 COMMENTS
    • /
    • 0 LIKES
    • KDDG_BaSTaD
      2004.03.31 21:46
      ==> 쉽게 말하면 델파이에서 DLL 이 나온게 아니라 C 부터 DLL 이 있어와서 그걸 지원하다보니 Delphi...
    • 연기훈
      2004.03.31 20:40
      csv 파일은 일반 text 파일입니다. access나 exel 프로그램에서 바로 변환도 가능하고요.. 프로그램...
    • Robin
    • 2004.03.31 20:26
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2004.03.31 20:32
      안녕하세요. 최용일입니다. 전체화면 얻는것과 같은 방식으로 하시면 됩니다. 단지 DC가 전체화면이 ...
    • 박수영
    • 2004.03.31 19:07
    • 0 COMMENTS
    • /
    • 0 LIKES
    • Galaxy
    • 2004.03.31 18:44
    • 4 COMMENTS
    • /
    • 1 LIKES
    • 박수영
      2004.03.31 19:16
      A테이블의 내용이 B테이블에 그대로 있는 것 같은데 B만 읽어오면 안되나요???? B만 읽어와서 작업이 가...
    • Galaxy
      2004.03.31 20:53
      안녕하세요 답변 감사 합니다. 저도 B만 읽어오면 좋겠지만 현 사항은 그렇지가 않습니다. 아래 테이...
    • 너구리
      2004.03.31 22:25
      오라클에서는 아웃조인이 한쪽으로밖에 걸리지 않습니다. 오라클인거 같은데..어떤디비 인지는 잘모르겠...
    • Galaxy
      2004.04.01 18:17
      답변에 감사 드립니다. 안녕하세요 수고 많습니다. MS-SQL7.0을 사용하고 있습니다. 님의 말씀대로 is...
    • 송태성
    • 2004.03.31 17:54
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 너구리
      2004.03.31 20:18
      TForm.OnActivate, OnDeactivate 는 같은 애플리케이션에서의 폼끼리 활성화,비활성화 될때만 발생을 하구...
    • 송태성
      2004.03.31 22:51
      그대로 코딩했는데도 'IN'은 먹더군요 그런데 모달 폼이라서 그런지 'OUT'  는 안먹더군요.. ...
    • 한원희
      2004.03.31 20:16
      안녕하세요. 한원희입니다. NC(Non-Client) 메시지는 모달폼 외부에 대한 동작으로 발생하는 것이 아니...
    • 송태성
      2004.03.31 22:53
      자세한 답변 감사드립니다. 그런데 말씀하신 방법을 모르겠네요. 일단 제가 필요한 코딩은 모달폼을 ...
    • 루이
    • 2004.03.31 08:37
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박수영
      2004.03.31 19:21
      for문을 이용을 해서 돌리면서 비교를 하면 안되나요??? tmp := ''; for i := 1 to grid1.rowcount...
    • 너구리
      2004.03.31 22:29
      말그대로 입니다. Statement를 기대했는데 procedure가 나왔넹.. 저에러가 난 뒷부분을 보십시오.. ...
    • 왕초보
    • 2004.03.31 06:30
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박수영
      2004.03.31 17:54
      datamodule에 연결된 query에다 직접 한번 해보세요... 전 아래와 같이 안 해봐서리...
    • 배수민
    • 2004.03.31 06:22
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이중철
      2004.03.31 22:01
      안녕하세요 이중철입니다. 혹시 님 Mobile업체에 근무 하십니까? 소스를 보니 Terminator 문자 $FF ...
    • 최용일
      2004.03.31 20:36
      안녕하세요. 최용일입니다. Sharemem유닛을 쓸 경우 이 유닛에서 메모리 관리를 해주니까 괜찮지만... ...
    • 배수민
      2004.04.01 02:19
      조언 많은 참조 하겠습니다. 다음에 하면서 발생되는 문제가 있으면 그때 또 도와주시면 고맙겠습니다. ...
    • 한원희
      2004.03.31 03:24
      안녕하세요. 한원희입니다. 님이 원하시는 것과 동일한 기능을 하는 것이 이미 델파이에 있습니다. bpl ...
    • 이중철
      2004.04.01 03:18
      그런데 문제는 rtl.bpl이 depend 하네요 에궁 rtl.bpl도 같이 까는거 빼고는 거의 문제 없네요 ^^
    • Crazy
      2004.03.31 02:28
      if image1.Picture.Graphic = nil then begin      showmessage( '없음' ); end el...
    • Galaxy
      2004.03.31 18:23
    • 김도형
    • 2004.03.31 00:38
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 연기훈
      2004.03.31 01:38
      흠.. 비트 연산하는 간단한 건데... 델파이로 할려니.. 델파이론 첨이라 맞는지 잘 모르것네요.. 다...
    • 이중철
      2004.03.31 01:53
        cnt - 1   8 - 1 => 7 저도 답변 썼다가 지웠어요 같아서요 ^^
    • 김도형
      2004.03.31 03:16
      맞게 했는지 모르겠는데요... 아래처럼 했는데 계속 ERROR가 나네욤.... =========================...
    • 연기훈
      2004.03.31 20:38
      crc 는 const 에 선언 하는 것이 아니고 var 에서 선언해주어야 합니다. procedure TForm1.Button1...
    • 이중철
      2004.03.31 22:20
      왠만하면 Data : Array of Byte; 이런식 또는 다른것으로 하시기를 아래에 보니 스트링에 해버렸네요 ...
    • goodlsw
    • 2004.03.30 21:40
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 너구리
      2004.03.30 22:18
      재생각엔 그 방식대로 하는건 좋지 않다고 봅니다.
    • 조경모
    • 2004.03.30 21:18
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박수영
      2004.03.30 21:35
      필드가 숫자형인데 문자를 넣었다거나 아니면 날자의 형식이 다르다거나 한것 같습니다... 우...