FireBird Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
파이어버드 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
IBPhoenix
FireBird Main site
볼랜드포럼 광고 모집

FireBird Q&A
[3191] Re:outer join 질문
김상면 [windyboy] 2562 읽음    2009-09-04 09:30
SQL은 상당히 쉬운 언어입니다.
더구나 자연어라서 영어만 할줄알면 컴퓨터에 기초가 부족해도 습득이 가능할정도 쉽습니다.
하지만 역시나 언어이고 컴퓨터를 다루는 툴이다 보니 약간의 한계가 있습니다.

그중에 몇가지가 호환성,NULL,  문자열,  날짜등 입니다.
호환성은 비록 표준 SQL을 사용한다 하더라도 데이터베이스에 따라서 동작이 조금씩 달라 진다는겁니다.
NULL은 필드값이 널일 경우 비교가 불가능하다는겁니다. 따라서 NOT NULL같은 DB가 제공하는 예약어를 찾아야 합니다.
문자열은 대등 비교에서 =가 올바르게 동작하지 않는다는 겁니다. DB에 따라서 LIKE를 대신 사용하여야 합니다.
날짜도 날짜상수의 경우 #날짜#로 표시 해야 합니다.
이외에도 상당한 문제가 있고 지금까지 제가 드린조언도 DB에 따라서 달라지는 부분이 많습니다.
그때는 할수 없이 해당 DB전문가에게 도움을 청하셔야 합니다. 달리 방법이 없습니다.

그럼


델피언 님이 쓰신 글 :
: Select a.item_code, a.item_name, a.in_num-Nullif(sum(b.out_num),0) as Remain_Num
:   From Product a left outer join Sale b
:            on a.seq = b.Product_seq
:          and a.item_name = 'jjj'
:      group by a.item_code, a.item_name
:
: 이렇게 하면 값은 나옵니다...
:
: 그런데  and a.item_name = 'jjj'   <- 이부분이 전혀 영향을 받지 않습니다.
:
: 무슨 말이냐면  and a.item_name = 'jjj' 빼고 sql을 돌려도 레코드가 100개이고..
: and a.item_name = 'jjj' 넣고 돌려도 똑같이  레코드가 100개가 나옵니다.....
: 물론 jjj 는 한개밖에 없는데 말입니다..ㅠㅠ
:
: 미치겠습니다.. ㅠㅠ

+ -

관련 글 리스트
3189 outer join 질문 델피언 2552 2009/09/04
3191     Re:outer join 질문 김상면 2562 2009/09/04
3192         Re:Re:outer join 질문 델피언 2490 2009/09/04
3190     Re:outer join 질문 civilian 2230 2009/09/04
3193         Re:Re:outer join 질문 델피언 2031 2009/09/04
3194             Re:Re:Re:outer join 질문 civilian 2588 2009/09/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.