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

FireBird Q&A
[2640] Re:[질문]월단위 시리얼번호 생성
까막 [ggamagui] 2381 읽음    2007-11-14 17:25
델맨 님이 쓰신 글 :
: 새로운 월이 될때마다 시리얼번호를 초기화 해서 사용하려고 아래와 같은 코드를 만들었습니다.
: 레코드에 기존의 데이타가 들어 있을때는 정상적으로 동작하는데 ,
: null반환하지 마라고 COALESCE 을 사용하여 null일때 리턴할 데이타를 지정해줬는데도
: 한개의 자료도 없을때 (그러니까 최초의 데이타생성시)는 null만 반환합니다.
:
: 주력DB를 MS만 쓰다가 이제부터 FIREBIRD로 바꾸려고 하는데 힘드네요....
: 조언부탁드립니다.
:
: SELECT
:     COALESCE ( KK.CUSTCODESERIAL + 1 , 1 ) AS LASTCODE
: FROM
: (
:     SELECT
:         FIRST 1 CUSTCODESERIAL
:     FROM
:         GFCUST
:     WHERE
:         CUSTCODEY = '2007'
:         AND
:         CUSTCODEM = '11'
:     ORDER BY
:         CUSTCODEY DESC , CUSTCODEM DESC
: ) AS KK
:
: 그리고
: SELECT
:     CASE KK.CUSTCODESERIAL
:         WHEN NULL THEN 1
:         ELSE KK.CUSTCODESERIAL + 1
:     END AS LASTCODE
: FROM
: (
:     SELECT
:         FIRST 1 CUSTCODESERIAL
:     FROM
:         GFCUST
:     WHERE
:         CUSTCODEY = '2007'
:         AND
:         CUSTCODEM = '11'
:     ORDER BY
:         CUSTCODEY DESC , CUSTCODEM DESC
: ) AS KK
: 이렇게 해도 마찬가지입니다.

안녕하세요. 까막입니다.

저도 그렇고, 다른 분들도 그런 실수를 많이 하실 것 같은데요.
COALESCE 함수를 써서 NULL 값을 제거 하려면 결과 RECORD 가 하나 이상은 있어야 합니다.
결과값 자체가 아예 없을 경우는 함수도 동작을 하지 않읍니다.

따로 변수를 하나 등록을 하셔서, 그 값이 NULL 일 경우 COALESCE 함수 처리를 하시는게 좋을 겁니다.

DECLARE VARIABLE vResultValue  DECIMAL(01,0);

SELECT ResultValue
FROM    TableName
INTO     :vResultValue;

vResultValue = COALESCE(:vResultValue,1);

이런 식으로 처리 하셔야 원하시는 결과를 얻을 수 있을 겁니다.



위대한 단군혼이 살아있는 나라.... 대한민국.

+ -

관련 글 리스트
2639 [질문]월단위 시리얼번호 생성 델맨 3140 2007/11/14
2658     저는 스토어드 안만들고 이렇게 사용합니다. 아폴론 2438 2007/11/27
2660         네.. 그런 방법도 있겠군요..감사합니다. 델맨 2338 2007/11/28
2640     Re:[질문]월단위 시리얼번호 생성 까막 2381 2007/11/14
2641         Re:Re:[질문]월단위 시리얼번호 생성 델맨 2476 2007/11/14
2642             SP로 만들어서 하니 잘되네요.. 델맨 2232 2007/11/14
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.